我知道Java在这种情况下有智能/懒惰的评估:
public boolean isTrue() {
boolean a = false;
boolean b = true;
return b || (a && b); // (a && b) is not evaluated since b is true
}
但是如果这样呢:
public boolean isTrue() {
boolean a = isATrue();
boolean b = isBTrue();
return b || a;
}
即使isBTrue()
返回true,也会调用isATrue()
吗?
发布于 2013-03-04 02:33:52
不,它不是。无论isATrue()
的结果如何,都将调用isBTrue()
。您可以通过编写这样的程序来验证这一点,并在每个方法中使用print语句。
https://stackoverflow.com/questions/15189209
复制相似问题