稍复杂的三目运算该怎么写? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
yulanggong
V2EX    程序员

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

  •  
  •   yulanggong
    yulanggong 2012-12-16 22:57:19 +08:00 6181 次点击
    这是一个创建于 4757 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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语句代替,这样写实在没有可读性。
    tunetoystory
        4
    tunetoystory  
       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     Solana     2697 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 11:46 PVG 19:46 LAX 03:46 JFK 06:46
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86