具有逻辑OR的If语句

时间:2010-04-02 15:24:09

标签: 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);
    }
}

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

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

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

2 个答案:

答案 0 :(得分:10)

短路评估。

答案 1 :(得分:5)

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

  

对于短路版本,只要子表达式的计算结果为false(在&&和&)的情况下为真(在||的情况下),就会放弃对后续子表达式的评估。