【问题标题】:Setting boolean variable to condition?将布尔变量设置为条件?
【发布时间】:2017-10-15 04:13:15
【问题描述】:

两者之间有什么明显区别

boolean foo= bar>1;

boolean foo = bar>1? true:false;

我注意到在第一个示例中,立即评估条件,看起来像这样。

int bar=3;
boolean foo= bar>1;
bar =0;
if(foo){
    System.out.println("Foobar");
}

将打印Foobar,而如果条件在if 语句内,则根本不会打印。到目前为止,这与使用三元运算符或if/else

从一开始就为布尔变量赋予真/假值相同

【问题讨论】:

    标签: java boolean


    【解决方案1】:

    三元是高度冗余的。鉴于不等式将返回布尔结果,因此您无需对其执行任何类型的三元运算。

    【讨论】:

    • 我就是这么想的,因为我知道它不是在评估 if 语句中的变量,我只是确保它没有任何额外的细微差别。
    【解决方案2】:

    我喜欢添加的一点是,两个代码都会生成相同的字节码。您可以使用 Java 类文件反汇编程序 (javap)

    作为证明

    使用命令来反汇编class文件javap -c com.package.MyClass,你会发现这两个代码JVM会生成相同的字节码。因此,这两种说法中的任何一种都没有好处或坏处。但绝对这里的三元是多余的

    【讨论】:

      猜你喜欢
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-05
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      相关资源
      最近更新 更多