这个问题已经在这里有了答案: > Java logical operator short-circuiting 9个
如果if语句包含两个(或多个)条件,而第一个条件失败,则if语句是否检查第二个条件或继续执行代码?
这是两个示例:
int x = 1, y = 2;
if(x == 0 && y == 2)
System.out.println("Nothing");
if(x == 1 || y == 0)
System.out.println("Something");
在第一个if语句中,条件应该返回false,但是y == 2是否经过测试?在第二个示例中,条件应该返回true,但是y == 0是否经过测试?还是在两种情况下,在第一个条件之后,代码都会跳过第二个条件并继续在代码中继续?
提前致谢.
解决方法:
&&和||是短路运算符,这意味着如果没有必要,将不评估右侧比较.
因此,我们有以下内容:
>使用&&时,如果左侧比较为假,则不评估右侧比较.
>使用||时,如果左侧比较为true,则不评估右侧比较.
但是,当使用&和作为逻辑运算符,总是会评估双方.
标签:if-statement,conditional,java
来源: https://codeday.me/bug/20191027/1941487.html