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

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

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

    http://www.cnblogs.com/ydong/articles/372742.html
        6
    luin   2012-12-17 00:15:59 +08:00
    大多数情况下都不要嵌套三目运算
        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;
    等等。
        8
    yulanggong   2012-12-17 08:32:23 +08:00
    我觉的第一种和第二种类似 if else,而第三种类似 switch case。我更喜欢第一种,?相当于后置if ,:相当于 else,缩进能表明嵌套关系。
        9
    yulanggong   2012-12-17 08:44:31 +08:00
    在根据条件不同给变量赋不同的值时三目运算挺直观的。
        10
    holmesabc   2012-12-17 09:07:51 +08:00
    加几个括号就OK了
        11
    chuangbo   2012-12-17 13:23:44 +08:00
    我觉得这种情况用 if else 会好一些。即使结构一样,if 感观上也比较简单。最好是第一眼就能看懂,不用思考。不然一个星期以后再回来看,估计就要琢磨一阵了。
        12
    BOYPT   2012-12-17 13:27:19 +08:00
    果然python去掉?:运算符是明智的,改成if else
        13
    yulanggong   2012-12-18 08:24:19 +08:00
    发现好多人说三目运算可读性差,如果把问号读做 if that is true,把冒号读做 else,可读性也不错。可能是我已经习惯了,感觉只要嵌套关系清楚,三目运算也可以条理清晰,而且少敲好多的字符。既然大家都说可读性差,以后就要少用了。
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1826 人在线   最高记录 2477   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.7.5 · 55ms · UTC 04:22 · PVG 12:22 · LAX 21:22 · JFK 00:22
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1