逻辑运算符& 和&& 或 | 和 | | 的短路简述
public class Test{
<span style="white-space:pre"> </span>public void main(String ... args){
<span style="white-space:pre"> </span>int x = 1;
<span style="white-space:pre"> </span>int y = 1;
<span style="white-space:pre"> </span> int z = 1;
<span style="white-space:pre"> </span><span style="color:#ff0000;">if(++x>0 || ++y<0 && ++z>0){} -----------------对照代码</span>
<span style="white-space:pre"> </span>System.out.println(x+" ,"+y+" ,"+z);
<span style="white-space:pre"> </span>}
}
打印结果是:2, 1, 1
public class Test{
public void main(String ... args){
int x = 1;
int y = 1;
int z = 1;
<span style="color:#ff0000;">if(++x>0 | ++y<0 && ++z>0){}</span><span style="color: rgb(255, 0, 0); font-family: Arial, Helvetica, sans-serif;"> -----------------对照代码</span><span style="color:#ff0000;">
</span>
System.out.println(x+" ,"+y+" ,"+z);
}
}
【结果解释】
1、& 和 | 即可以作为逻辑运算符,也可以作为位运算符,再次对位运算符不做过多介绍
2、& 和 && 和区别在于,&& 逻辑与运算符具有短路左右,而 & 逻辑与没有短路作用
短路作用:&&-----:如果运算符左边为假,则不对右边的表达式进行判断;而左边为真时,则对右边也进行判断(保证整个表达式都为真)
| |------:如果运算符左边为真,则不对右边的表达式进行判断;而左边为假时,则对右边也进行判断(保证两个表达式至少有一个为真)
注意:&( 逻辑与) 和 |( 逻辑或) 没有短路作用
故打印结果不言而喻!
本篇博文,是为了回答师兄疑问而写,内容初级而简单,但对于初学者来讲,是比较容易忽略和遗忘的知识点,不喜勿喷!