V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yulanggong
V2EX  ›  程序员

稍复杂的三目运算该怎么写?

  •  
  •   yulanggong ·
    yulanggong · 2012-12-16 22:57:19 +08:00 · 5525 次点击
    这是一个创建于 4148 天前的主题,其中的信息可能已经有所发展或是发生改变。
    13 条回复    1970-01-01 08:00:00 +08:00
    qiao
        1
    qiao  
       2012-12-16 23:12:05 +08:00
    这种情况就不要用三目运算符了,用 if else 的话可读性会好些。
    wwwjfy
        2
    wwwjfy  
       2012-12-16 23:20:22 +08:00
    非得这么写的话,加几个括号更清楚
    chone
        3
    chone  
       2012-12-17 00:00:45 +08:00
    用if else语句代替,这样写实在没有可读性。
    Rabbit52
        4
    Rabbit52  
       2012-12-17 00:05:20 +08:00
    I think so
    Mutoo
        5
    Mutoo  
       2012-12-17 00:12:05 +08:00
    可以试试“表驱动法”
    比这复杂得多的都可以搞定。

    http://www.cnblogs.com/ydong/articles/372742.html
    luin
        6
    luin  
       2012-12-17 00:15:59 +08:00
    大多数情况下都不要嵌套三目运算
    banxi1988
        7
    banxi1988  
       2012-12-17 01:29:29 +08:00
    我写不出复杂的三目运算符。如果需要写,那肯定需要重构了。
    为什么不引入解释性的变量 呢?
    如:
    boolean gt2 = num > 2?true:false;
    boolean lt5 = num < 5?true:false;
    boolean between2_5 = gt2 && lt5;
    等等。
    yulanggong
        8
    yulanggong  
    OP
       2012-12-17 08:32:23 +08:00
    我觉的第一种和第二种类似 if else,而第三种类似 switch case。我更喜欢第一种,?相当于后置if ,:相当于 else,缩进能表明嵌套关系。
    yulanggong
        9
    yulanggong  
    OP
       2012-12-17 08:44:31 +08:00
    在根据条件不同给变量赋不同的值时三目运算挺直观的。
    holmesabc
        10
    holmesabc  
       2012-12-17 09:07:51 +08:00
    加几个括号就OK了
    chuangbo
        11
    chuangbo  
       2012-12-17 13:23:44 +08:00
    我觉得这种情况用 if else 会好一些。即使结构一样,if 感观上也比较简单。最好是第一眼就能看懂,不用思考。不然一个星期以后再回来看,估计就要琢磨一阵了。
    BOYPT
        12
    BOYPT  
       2012-12-17 13:27:19 +08:00
    果然python去掉?:运算符是明智的,改成if else
    yulanggong
        13
    yulanggong  
    OP
       2012-12-18 08:24:19 +08:00
    发现好多人说三目运算可读性差,如果把问号读做 if that is true,把冒号读做 else,可读性也不错。可能是我已经习惯了,感觉只要嵌套关系清楚,三目运算也可以条理清晰,而且少敲好多的字符。既然大家都说可读性差,以后就要少用了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2940 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:02 · PVG 21:02 · LAX 06:02 · JFK 09:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.