public class Test{
public static void main(String args[]){
int a = 0;
int b = 1;
int c = 10;
if ( a == 0 || b++ == c ){
a = b + c;
}else{
b = a + c;
}
System.out.println("a: " + a + ",b: " + b + ",c: " + c);
}
}
好的,这是Java代码,输出是 a:11,b:1,c:10 我相信在这种情况下C与Java相同
这是因为如果第一个条件在'OR'运算符中为真,则第二个条件(b ++ == c)将永远不会执行。
这有一个“名称”。我只是不记得它是什么。 有谁知道这叫什么?
答案 0 :(得分:10)
短路评估。
答案 1 :(得分:5)
这称为逻辑运算符的short-circuit
行为:
对于短路版本,只要子表达式的计算结果为false(在&&和&)的情况下为真(在||的情况下),就会放弃对后续子表达式的评估。