V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐书目
黑客与画家
REWORK 简体中文版
REWORK 精装原版
深入浅出设计模式 Head First Design Patterns
代码之美 Beautiful Code
数据之美 Beautiful Data
信息论、编码与密码学
Free as in Freedom
设计原本
精通正则表达式
V2EX  ›  程序员

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

  •  
  •   yulanggong · 2012-12-16 22:57:19 +08:00 · 2893 次点击
    这是一个创建于 1497 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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   ·   我们的愿景   ·   IP 查询   ·   广告投放   ·   鸣谢   ·   上网首页   ·   1310 人在线   最高记录 2399   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.7.5 · 56ms · UTC 14:09 · PVG 22:09 · LAX 06:09 · JFK 09:09
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1