原创作品,欢迎阅览
转载注明 blog.csdn.net/loadingsong
&& || & |
逻辑运算符“与” && “或”|| ,用法想必大家都会,而且很简单,&&就是只有当两个条件都为真时才执行操作;|| 就是只要任何一个条件为真时就执行操作。但是,在实际使用中,很容易出现问题,下面是要注意的点:
&& 、||为短路的与、或
&&:当前条件为假时不去判断后面的条件
||:当前条件为真时不去判断后面的条件
对比 & 和 |下面
举例说明:
(1)public static void main(String[] args) {
int i=10;
int j=20;
boolean b=i<10 && ++j<100;
System.out.println(b);
System.out.println("j="+j);
}
//这里,当进行boolean判断时,i<10不成立,当前条件为假,则不进行后面的操作,直接返回boolean判断,所以输出结果为
false
20
(2)public static void main(String[] args) {
int i=10;
int j=20;
boolean b=i<10 & ++j<100;
System.out.println(b);
System.out.println("j="+j);
}
这里,boolean b=i<10 && ++j<100;改为boolean b=i<10 & ++j<100;,&的定义是无论条件的前后正确与否都执行,所以前面的条件为假,后面继续执行,++j, 输出结果为
false
21
(3) public static void main(String[] args) {
int i=10;
int j=20;
boolean b=i<100 || ++j<100;
System.out.println(b);
System.out.println("j="+j);
}
这里,将&&改为||,定义为当前条件为真时不去判断后面的条件,所以i<100为真,就不去判断后面的条件,输出结果为:
true
20
(4)同理,将(3)中的boolean b=i<100 || ++j<100;换为
boolean b=i<100 | ++j<100;
public static void main(String[] args) {
int i=10;
int j=20;
boolean b=i<100 | ++j<100;
System.out.println(b);
System.out.println("j="+j);
}
因为|无论条件前后正确与否都会进行判断,所以2个条件都进行了判断,输出结果为:
true
21
通过这几个例子,可以看到&&与||有着类似的判断方法,&与|有着类似的概念,所以在掌握这几个逻辑运算符的时候要理解其概念,不要混淆,这也是在笔试和面试的时候特别容易考到的知识点,希望能够明白其中的区别。