具有逻辑OR的If语句

exi*_*000 3 programming-languages


 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

好的,这是Java代码,输出是:11,b:1,c:10我认为C在这种情况下与Java相同

这是因为如果第一个条件在'OR'运算符中为真,则第二个条件(b ++ == c)将永远不会执行.

这有一个"名称".我只是不记得它是什么.有谁知道这叫什么?

cms*_*sjr 10

短路评估.


cod*_*ict 5

这称为short-circuit逻辑运算符的行为:

对于短路版本,只要子表达式求值为false(在&&的情况下)或为真(在||的情况下),就会放弃对后续子表达式的求值.