我对Java中的return语句中布尔变量的含义(评估)有疑问.
我知道:
if (var) { ... }
是相同的:
if (var==true) { ... }
在第二种情况下,我们明确地说var == true,但我们不需要这样做,因为无论如何Java都将var计算为true.我希望我理解这一点.
我的问题是:返回布尔变量时是否相同?当我们有退货声明?
例如,任务指定:方法LooksBetter()仅在b
简单的答案是: 因此,似乎在这里我们再次有这个隐含的假设,即在b 这不是一个"隐含的假设",而是编译器正在做的事情.的 另外值得注意的是,你似乎互相交换 是的,所有布尔都是如此.您可以考虑if(表达式)评估'表达式'以查看它是'true'还是'false'.当你这样做 不要让代码复杂化.如果您觉得需要说"a ((((((((...(a" "a 更布尔值的方式.public boolean looksBetter() {
if (b < a) {
return true;
} else {
return false;
}
}
public boolean lookBetter() {
return b < a;
}
1> Rob Hruska..:b < a
,如果它被用于的只是一个表情,同样的if
声明.表达式求值为a boolean
,然后返回.boolean
,Boolean
好像它们是一样的,但它们实际上并非如此.boolean
是原始形式,Boolean
而是一个包装的对象boolean
.
使用"基本相同的"方法的唯一问题是使用null.对象可以为null,原语不能.尝试自动取消装箱空.不完全明白异常意味着什么.
2> Bill Zeller..:if(b < a == true)
3> Paul Tomblin..: