可能重复:
为什么我们通常使用||
not|
,有什么区别?
例子:
if(a && b && d)
{
...
}
我需要找出一种语言是否支持检查 if 语句中的所有条件,即使“b”失败。这个概念叫什么?
可能重复:
为什么我们通常使用||
not|
,有什么区别?
例子:
if(a && b && d)
{
...
}
我需要找出一种语言是否支持检查 if 语句中的所有条件,即使“b”失败。这个概念叫什么?
不,Java 和 C++ 都不会评估d
. 这是短路评估。
不,二元逻辑运算符是短路的。他们从左到右评估他们的操作数。如果其中一个操作数的计算结果使表达式为假,则不会计算其他操作数。
标准二进制操作 && 和 || 被短路。如果要强制双方进行评估,请使用 & 或 | 而不是 && 和 ||。例如
public class StackOverflow {
static boolean false1() {
System.out.println("In false1");
return false;
}
static boolean false2() {
System.out.println("In false2");
return false;
}
public static void main(String[] args) {
System.out.println("shortcircuit");
boolean b = false1() && false2();
System.out.println("full evaluation");
b = false1() & false2();
}
}