如果第一个条件失败,那么第二个条件将检查-java

时间:2014-11-07 19:51:44

标签: java while-loop conditional-statements

如果我在java中有一个while条件如下(j> = 1&& i< = 7)我的问题是如果第一个条件失败那么第二个条件将被检查? 换句话说,如果j = 0,编译器将检查I< = 7或它是否会忽略它。 请帮我 谢谢

6 个答案:

答案 0 :(得分:2)

(j>=1 && i<=7 && cond1 && cond2 && ... && condN) // will evaluate until the one condition fails
(j>=1  & i<=7  & cond1  & cond2  & ...  & condN) // will evaluate all the conditions

or

(j>=1 || i<=7 || cond1 || cond2 || ... || condN) // will evaluate until the one condition is true
(j>=1  | i<=7  | cond1  | cond2  | ...  | condN) // will evaluate all conditions

示例:

让我们使用这两种方法:

public boolean isTrue(){
  System.out.println("true");
  return true;
}

public boolean isFalse(){
  System.out.println("false");
  return false;
}

所以,在第一种情况下:

boolean cond = isFalse() && isTrue(); 

输出是:

 false

cond的值为false

在第二种情况下:

boolean cond = isFalse() & isTrue(); 

输出是:

 false
 true

cond的值为false

答案 1 :(得分:1)

不,如果第一个条件返回 false ,那么整个表达式会自动返回 false

Java不会费心去检查其他情况。

答案 2 :(得分:0)

不会。逻辑运算符&&快捷方式,如果其左侧参数为false,将停止评估。

请注意,Java也具有逻辑(除了按位&!)运算符&,它将快捷方式;因此,如果aa & b中评估为false的布尔表达式,那么b 进行评估(但最终结果仍为false)。

答案 3 :(得分:0)

不评估&amp;&amp;如果第一个条件为假,那么它不会评估第二个条件。

同样在评估||时如果第一个条件为真,则不评估第二个条件。

答案 4 :(得分:0)

这称为懒惰评估。为了使它变得贪婪,请使用单个&符号逻辑运算符。在这种情况下,它也将评估第二个条件,即使第一个条件是假的。

答案 5 :(得分:0)

我同意别人的意见。答案是不。这被称为短路评估。

http://en.wikipedia.org/wiki/Short-circuit_evaluation