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

在 Java 里什么时候使用三目运算比较好?

  •  1
     
  •   JustinJie · 2017-12-15 20:09:44 +08:00 · 3996 次点击
    这是一个创建于 2553 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想请问各位大牛,在 Java 编程中,何时使用三目运算,何时使用 If-else 比较好?或者其他经验也可以分享~

    14 条回复    2017-12-16 09:02:09 +08:00
    ke1e
        1
    ke1e  
       2017-12-15 20:24:21 +08:00
    给一个变量赋值但是这个变量有临界值的时候
    arclin16
        2
    arclin16  
       2017-12-15 22:35:38 +08:00 via iPhone
    同意楼上
    honeycomb
        3
    honeycomb  
       2017-12-15 22:41:44 +08:00 via Android
    这个运算符当它是个语法糖,用来让表达式简化(具体适用范围楼上已经说清楚了)的。
    如果对你而言它不比 if else 更好的话,没有必要逼着自己去用。
    gbin
        4
    gbin  
       2017-12-15 22:43:03 +08:00
    三目元算简洁,if-else 可读性高。
    SuperMild
        5
    SuperMild  
       2017-12-15 22:45:45 +08:00
    感觉一行可以写下的就先写三目,写完看着不顺眼就改成 if else,看着顺眼就保留。
    cuebyte
        6
    cuebyte  
       2017-12-15 22:49:40 +08:00
    Java 的 if-else 没有返回值,三目就是有返回值的 if-else
    lihongjie0209
        7
    lihongjie0209  
       2017-12-15 23:01:45 +08:00
    当 Idea 提示你可以简化 If 的时候. 写代码的时候不要考虑这种细节问题, 跑起来和逻辑正确是最基本的要求, 其次是可读性, 最后是你的个人喜好.
    padeoe
        8
    padeoe  
       2017-12-15 23:37:06 +08:00   ❤️ 2
    Java 三目操作符有时候挺不直观的,譬如:
    System.out.println(true ? 'a' : 97);
    System.out.println(true ? 'a' : 65536);
    分别输出 a 和 97。
    我可能并不是唯一一个搞不清的,最好还是 if-else 吧。之前写过一篇博客介绍:
    https://padeoe.com/the-type-of-conditional-expression-in-java/
    misaka19000
        9
    misaka19000  
       2017-12-15 23:52:12 +08:00
    想用的时候就用 不用那么死板的
    zhx1991
        10
    zhx1991  
       2017-12-16 00:29:28 +08:00
    简洁无歧义的时候

    语法糖用起来不是让人难懂的
    riggzh
        11
    riggzh  
       2017-12-16 00:45:45 +08:00
    @padeoe 97 单纯是 a 的 ascii 而已,请多用双引号来表达字符
    riggzh
        12
    riggzh  
       2017-12-16 00:47:52 +08:00
    @padeoe JAVA 中的单引号如果没记错 只有 char 才会用单引
    vegito2002
        13
    vegito2002  
       2017-12-16 02:30:32 +08:00
    比较短的时候就可以用, 超过一行就不要用了. 最好:两边的内容有一定的对称性, 这样看起来易读一些, 不过其实也不是强求
    metorm
        14
    metorm  
       2017-12-16 09:02:09 +08:00 via Android
    需要根据条件初始化常量的时候
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4997 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:39 · PVG 11:39 · LAX 19:39 · JFK 22:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.