• 请不要在回答技术问题时复制粘贴 AI 生成的内容
withrock
V2EX  ›  程序员

这样写 if/else 的人,内心一定很扭曲吧

  •  
  •   withrock · Jul 10, 2017 · 15366 views
    This topic created in 3407 days ago, the information mentioned may be changed or developed.

    110 replies  •  2017-07-11 17:02:58 +08:00
    1  2  
    ❮ ❯
    Jayce245
    Jayce245
    Jul 10, 2017
    1
    哈哈哈
    bidongliang
    bidongliang
    Jul 10, 2017❤️2
    2
    不光 if/else,整个代码都光芒四射吧!
    leejanfin
    leejanfin
    Jul 10, 2017 via iPhone
    3
    喜感...
    另外等号两边没有空格 差评...
    wangdu2012
    wangdu2012
    Jul 10, 2017 via iPhone
    4
    这个怎么修改好?
    RiceNoodle
    RiceNoodle
    Jul 10, 2017
    5
    感觉在看面试题里面的风格纠错题似的
    39Sc06lk7Khhc4qV
    39Sc06lk7Khhc4qV
    Jul 10, 2017 via Android❤️2
    6
    我怎么觉得把 else 后面的{收到同一行更美观。。。
    domty
    domty
    Jul 10, 2017
    7
    这不就是一行三目运算符的事吗?😮
    shihira
    shihira
    Jul 10, 2017 via Android
    8
    除了风格上有点松垮之外,还好啊觉得,没有太多重的 if/else,逻辑也算清晰
    minami
    minami
    Jul 10, 2017❤️3
    9
    ×代码格式化工具
    √上 V2 发帖
    0915240
    0915240
    Jul 10, 2017 via iPhone
    11
    估计才写代码没多久吧
    herozzm
    herozzm
    Jul 10, 2017❤️6
    12
    caniuse
    caniuse
    Jul 10, 2017
    13
    你这字体也不像是写代码的人
    redtea
    redtea
    Jul 10, 2017
    14
    var payMethod = $("#selPayMethod").val();
    if(gPayMethod == "99"){
    payMethod = "99";
    }else if(payMethod == undefined || payMethod == ""){
    payMethod = "00";
    }
    myPacket.data.add("payMethod", payMethod);
    qdwang
    qdwang
    Jul 10, 2017
    15
    这可能是某种需求变动导致的,应对后续的需求变动增减代码也会比较方便
    explon
    explon
    Jul 10, 2017 via iPhone
    16
    傻逼赶紧开除
    explon
    explon
    Jul 10, 2017 via iPhone
    17
    @redtea 恶心代码
    hjc4869
    hjc4869
    Jul 10, 2017
    18
    楼主给的这个​ if ​/​ else ​的代码格式倒是挺扭曲的……
    zhoufenfens
    zhoufenfens
    Jul 10, 2017
    19
    我还见过这样的
    if (xxx) doSth()
    else
    {
    doSthElse()
    }

    想骂人..
    rubyvector
    rubyvector
    Jul 10, 2017
    20
    格式怪了点。逻辑没问题吧
    SourceMan
    SourceMan
    Jul 10, 2017 via iPhone
    21
    上 eslint 不就没有吐槽的机会了吗?只能说你们本身开发不规范
    cxbig
    cxbig
    Jul 10, 2017
    22
    新手的话难免,尝试沟通,介绍 IDE 或 Lint 等自动排版工具。拒不接受的再来吐槽也不迟。
    代码是啰嗦了一点,但是思路 比较清晰。

    - 中文注释这个不喜欢
    - 表单取值要加这么多判断说明设计就有问题,尝试在源头就处理好,比方说:
    -- 变量 gPayMethod 直接输入到#selPayMethod
    -- #selPayMethod 不给空值,默认为“ 00 ”
    ecloud
    ecloud
    Jul 10, 2017
    23
    这哥们儿是双子座的吧,人格比较分裂……
    timothyye
    timothyye
    Jul 10, 2017 via Android❤️1
    24
    这种写法是异端,得烧屎,哈哈
    solobat
    solobat
    Jul 10, 2017
    25
    if else 的放置确实有点儿另类,倒是可以再优化下
    acrisliu
    acrisliu
    Jul 10, 2017
    26
    am241
    am241
    Jul 10, 2017❤️4
    27
    见过的最奇葩的代码,这也是我为什么总想着逃离嵌入式圈的原因

    ![]( )
    liyuhang
    liyuhang
    Jul 10, 2017❤️2
    28
    ![image]( https://ooo.0o0.ooo/2017/07/10/59638a3ba2e4a.png)
    liyuhang
    liyuhang
    Jul 10, 2017
    29
    回复怎么使用 Markdown 语法?
    breestealth
    breestealth
    Jul 10, 2017❤️11
    30
    看别人代码并且像 LZ 这么评价的人,内心一定很扭曲吧

    看代码就看代码,凭什么说人家内心扭曲,LZ 你自己才是内心扭曲的那个吧。
    greatghoul
    greatghoul
    Jul 10, 2017
    31
    花式秀代码。
    tnx2014
    tnx2014
    Jul 10, 2017
    32
    @am241 这个例子棒,我感觉写出你这例子的人才是真的不动脑,写楼主的例子的人可能只是没有想到简单写法而已。
    mingyun
    mingyun
    Jul 10, 2017
    33
    代码格式化下先
    dream7758522
    dream7758522
    Jul 10, 2017 via Android
    34
    我觉得格式别扭了一些,
    代码挺好的。
    mahone3297
    mahone3297
    Jul 10, 2017
    35
    lz,那你说应该怎么写?
    大家都吐槽,那应该怎么写?
    大家在吐槽 else 的位置?还好吧。。。
    ghos
    ghos
    Jul 10, 2017
    36
    @am241 这段代码真的是。。。。叹为观止
    NicholasWangC
    NicholasWangC
    Jul 10, 2017
    37
    @am241 ta 是不是用 excel 写的代码。。。呸,拖的代码?
    ecloud
    ecloud
    Jul 10, 2017
    38
    @am241 这是印度人写的代码吗?以前不是流传一个段子,说印度人直接是开个大数组就干,从来不会用数据结构
    iVeego
    iVeego
    Jul 10, 2017
    39
    @liyuhang #29 回复暂不支持 MD
    BoBoy
    BoBoy
    Jul 10, 2017 via iPhone
    40
    又见回帖的好多装逼侠。。。。
    honeycomb
    honeycomb
    Jul 11, 2017
    41
    @liyuhang
    不考虑格式(缩进等),原先的代码在逻辑上没什么不合适,难道这里希望把它改用逆否命题式的 guard 条件来写?
    pysama
    pysama
    Jul 11, 2017
    42
    @caniuse 这字体还行把。 我见过 坚决不用等宽字体写代码的。 而且只要是带 tab 的工具,肯定是齐刷刷二十几个 tab 全开着,找文件的时候一个个 tab 来回切着找。
    我是佩服的不行。。
    bk201
    bk201
    Jul 11, 2017 via iPhone
    43
    no bb,show me your code.除了啰嗦,也没觉得有多奇怪,引申到别人心里扭曲是什么鬼?
    wotemelon
    wotemelon
    Jul 11, 2017
    44
    @redtea 你这代码写的。。。无力吐槽
    wangxiaoer
    wangxiaoer
    Jul 11, 2017
    45
    我觉得楼主贴的代码逻辑没啥大问题,就是有些重复了,总比 x 马培训那个手动递归的强吧。

    这样会不会好点

    mrcn
    mrcn
    Jul 11, 2017 via Android
    46
    不是很懂到底哪里不对
    除了里面的 if 可以跟着 else 直接写以外
    hzw94
    hzw94
    Jul 11, 2017
    47
    肯定是新手,基本不注意格式规范,应该从未考虑当别人阅读的情况
    lrh3321
    lrh3321
    Jul 11, 2017
    48
    需要格式化下代码
    auhah
    auhah
    Jul 11, 2017
    49
    写完肯定没自己看过。。。。
    xujialiang
    xujialiang
    Jul 11, 2017
    50
    一起优化代码,面试题
    jianghu52
    jianghu52
    Jul 11, 2017
    51
    如果工期只有半天。我指不定也会写出这样的代码。。。。
    wizardforcel
    wizardforcel
    Jul 11, 2017 via Android
    52
    就不知道拿个变量缓存一下。
    doubleflower
    doubleflower
    Jul 11, 2017
    53
    写代码对格式没有强迫症的都可以开除了
    syyy
    syyy
    Jul 11, 2017
    54
    我曾经因为 else 两边打空格被吐槽,后来当着那人的面格式化代码,完胜。
    zjsxwc
    zjsxwc
    Jul 11, 2017
    55
    感觉是 else 里的是 原来正常的代码, 后来产品经理要求马上加个组合支付( gPayMethod==99 )功能,就写成楼主这种代码了
    suckli
    suckli
    Jul 11, 2017
    56
    这种魔鬼数字看着就很恐怖。。。
    MiguelValentine
    MiguelValentine
    Jul 11, 2017❤️1
    57
    看了一些回答。。我才发现 v2 的水平也就这样。就看到一个提三目的,好几个说没什么大问题。。??可以。难怪你们的代码量 5x。是 kpi 指标吗。
    Arainc
    Arainc
    Jul 11, 2017
    58
    @am241 同想脱嵌入式圈。。。无数个全局变量
    jydeng
    jydeng
    Jul 11, 2017
    59
    shift + alt + f
    walleL
    walleL
    Jul 11, 2017
    60
    有没有大佬指出都有哪些问题?我学习一下
    chenyu0532
    chenyu0532
    Jul 11, 2017
    61
    说代码逻辑写的不好就说逻辑的事,跟个 if else 格式叫什么劲
    deadEgg
    deadEgg
    Jul 11, 2017
    62
    if else 的写法精简度 是判断大学生代码清洁的基本门槛之一 :doge
    heaton_nobu
    heaton_nobu
    Jul 11, 2017
    63
    感觉楼主内心也挺扭曲的
    whisperer
    whisperer
    Jul 11, 2017
    64
    说 if else 的各位,我想请教一下我这个怎么解释,原代码如下:



    执行代码格式化,PhpStorm 把格式改成楼主同事的风格了:

    yalanaika
    yalanaika
    Jul 11, 2017
    65
    @am241 各位别吐槽啊,人家把 o(n)的代码优化成 o(1)的了
    lianxiaoyi
    lianxiaoyi
    Jul 11, 2017❤️1
    66
    为什么要给一个有强迫症的程序员看这个。。。。。。妈的。。。。。。心扭一起了。。。。。我先去捏包方便面缓解一下。。。。。。。。。。。。
    Curtion
    Curtion
    Jul 11, 2017
    67
    实话告诉你,我们老师都是这么写的,不过是搞嵌入式的
    aitaii
    aitaii
    Jul 11, 2017
    68
    @lianxiaoyi 你的强迫症不能强迫你把。。。写整齐点吗,。。。。,,。。,。》。,。,。,。,。,。,。,。,
    demo
    demo
    Jul 11, 2017
    69
    @whisperer 一个意思,只是把 else if 拆掉了,换成 else 后再 if else
    liyuhang
    liyuhang
    Jul 11, 2017
    70
    @whisperer 是不是 IDE 配置被改了
    liu35118665
    liu35118665
    Jul 11, 2017
    71
    var payMethod=gPayMethod;
    if(payMethod !="99"){
    payMethod=$("#selPayMethod").val()||"00";
    }
    myPacket.data.add("payMethod",payMethod);
    fds
    fds
    Jul 11, 2017
    72
    强制开启自动格式化
    lianxiaoyi
    lianxiaoyi
    Jul 11, 2017
    73
    @aitaii 这个到不是强迫症。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
    lianxiaoyi
    lianxiaoyi
    Jul 11, 2017
    74
    @aitaii 我草。。。。。。为毛后面少了一个。 我靠 。。。。。。
    whisperer
    whisperer
    Jul 11, 2017
    75
    @demo #69
    但是楼上不是很多人吐槽这个格式么,我也很不喜欢这个格式

    @liyuhang #70
    刚才又测试了一下,我用的是在 Default 上 Set from PSR1/PSR2,切换成编辑器自带的 Default 就没有这个问题了,感谢提醒
    slion
    slion
    Jul 11, 2017
    76
    先把代码格式化一次
    lance26
    lance26
    Jul 11, 2017
    77
    @am241 这是宏展开自动生成的吧,肯定不是手写的,没觉得有什么问题
    NSAtools
    NSAtools
    Jul 11, 2017❤️1
    78
    @am241 这是按行计费的吧
    maplerecall
    maplerecall
    Jul 11, 2017
    79
    简直难受,究竟是经历了什么才会写出这样的括号
    sonyxperia
    sonyxperia
    Jul 11, 2017
    80
    我觉得楼主的内心扭曲多了
    zhengxiaowai
    zhengxiaowai
    Jul 11, 2017
    81
    换行党和不换行党看着都很无奈
    bk201
    bk201
    Jul 11, 2017
    82
    @MiguelValentine 算了吧,这里几个不懂三目,别乱喷,如果你厉害你写个代码给大家瞧瞧就是了。
    dapeng
    dapeng
    Jul 11, 2017
    83
    @herozzm ,不扶老奶奶,服你
    XiaoFaye
    XiaoFaye
    Jul 11, 2017
    84
    大家别 BB 了,估计写这代码的人 5 万一个月呢,尔等屌丝哪有资格评论。
    am241
    am241
    Jul 11, 2017 via Android
    85
    @lance26 没那么多玄机,他们就是蠢。看看网上流传的诸多 51 单片机程序源码就知道了
    QAPTEAWH
    QAPTEAWH
    Jul 11, 2017
    86
    格式有点问题,内容不评价。

    有些人不要少见多怪
    - “ logic follow structure ” 根据这个原则写出多重嵌套 if-else 很正常,反倒是各种合并会让逻辑不清晰
    - 状态机写个大 switch 太正常了,搞不好是代码生成的
    blacklee
    blacklee
    Jul 11, 2017
    87
    好像还没人说这一点,题中的代码上是
    ```if (cond1) {
    xx1();
    } else {
    if (cond2) xx2();
    else xx3();
    }```

    这就是 `if - else if` 的经典套路了,应该改成

    ```if (cond1) {
    xx1();
    } else if (cond2) {
    xx2();
    } else {
    xx3();
    }```

    不知道 md 语法行不行
    Sapp
    Sapp
    Jul 11, 2017
    88
    @MiguelValentine 有些人就是不喜欢用三元运算符,这不是喷点,喷点是他这么写确实很难看,就算用 if 也不该用这么难看,不知道你的关注点为什么在可以用三元运算符上。
    Sapp
    Sapp
    Jul 11, 2017
    89
    @blacklee
    if (xxx === '99') {
    xxxx(x, 99)
    } else {
    xxxx(x, val || 0)
    }

    这么写就可以了
    yanghao633785
    yanghao633785
    Jul 11, 2017
    90
    var payMethod = $("#selPayMethod").val();
    if(payMethod == undefined || payMethod == ""){
    payMethod = "00";
    }
    myPacket.data.add("payMethod", payMethod);
    //"99"为啥要单独拿出来额
    yuchenyang1994
    yuchenyang1994
    Jul 11, 2017
    91

    不想吐槽。。。。
    laoyur
    laoyur
    Jul 11, 2017
    92
    能用即合理,能赚钱就行,吹毛求疵干吗
    说非要优化成 if - else if 结构的,不知道业务是随时会变的吗,楼主这种风格的代码应对随时会加上的各种龟毛逻辑,更从容,不容易出 bug
    Sapp
    Sapp
    Jul 11, 2017
    93
    @yanghao633785
    你这么写似乎是有 bug,第一个 if 里是 gPayMethod,gPayMethod 应该是单独获取的。 而且也没必要这么写。

    const payMethod = gPayMethod === '99' ? '99' : $("#selPayMethod").val() || '0'

    xxxx('payMethod', payMethod)
    mineqiqi
    mineqiqi
    Jul 11, 2017
    94
    var payMethod = gPayMethod=="99"?gPayMethod:$(#selPayMethod).val||"00";
    myPacket.data.add("payMethod",payMethod);
    yanghao633785
    yanghao633785
    Jul 11, 2017
    95
    @Sapp 确实,受教了。
    Jimrussell
    Jimrussell
    Jul 11, 2017
    96
    顶楼那个确实有待提高,但也就是别人可能菜了点新手了点。说他内心扭曲我实在看不出来。
    ZzFoo
    ZzFoo
    Jul 11, 2017
    97
    楼主的槽点居然在 if else, 不应该是 "99" 和 "00" 那两个 magic number 以及写了三次的 myPacket.data.add() 吗
    stzz
    stzz
    Jul 11, 2017 via Android
    98
    其他就算了,主要是括号看得人难受吧,看得头疼
    murmur
    murmur
    Jul 11, 2017
    99
    @caniuse 宋体字方方正正招你惹你了了
    第一次看到用字体喷人的
    liangWL
    liangWL
    Jul 11, 2017
    100
    Ctrl+Shift+Alt+T 搞定
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1442 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 172ms · UTC 15:57 · PVG 23:57 · LAX 07:57 · JFK 10:57
    ♥ Do have faith in what you're doing.