检查“if”语句中的所有条件?

时间:2012-05-24 22:44:40

标签: if-statement

  

可能重复:
  Why do we usually use || not |, what is the difference?

示例:

if(a && b && d)
{
...
}

我需要找出一种语言是否支持检查if语句中的所有条件,即使“b”失败也是如此。这个概念叫什么?

3 个答案:

答案 0 :(得分:14)

不,Java和C ++都不会评估d。这是short-circuit evaluation

答案 1 :(得分:3)

不,二进制逻辑运算符是短路的。他们从左到右评估他们的操作数。如果其中一个操作数的计算结果为表达式为false,则不会计算其他操作数。

答案 2 :(得分:3)

标准二进制操作&&和||是short-circuited。如果您想强制双方评估,请使用&或者而不是&&和||。 e.g。

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();
   }
}