将布尔变量设置为条件?

时间:2017-10-15 04:13:16

标签: java boolean

之间是否存在明显差异
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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

我想添加一件事,两个代码都会生成相同的字节码。为了证明您可以使用 Java类文件反汇编程序(javap

使用该命令反汇编class个文件javap -c com.package.MyClass,您会发现两个代码 JVM 将生成相同的字节码。因此,对于这两个陈述中的任何一个都有 No 的利益或损害。但绝对三元在这里是redaundant