首先介绍一下逻辑运算符
运算符
用法
含义
&&
op1&&op2
逻辑与
||
op1||op2
逻辑或
!
!op
逻辑非
然后我们在看一下逻辑运算符的使用规则
op1
Op2
op1&&op2
op1||op2
!op1
true
True
true
true
false
True
False
false
true
false
False
True
false
true
true
False
False
false
false
true
然后我们看一下位运算符
位运算是将数据先转化为二进制数补码形式,再逐位(bit)按规则计算。
“按位与”运算符“&”,规则:全1则1,否则为0
“按位或”运算符“|”,规则:全0则0,否则为1。 “按位非”运算符“~”,规则:遇1则0,遇0则1。 “按位异或”运算符“^”,规则:相同为0,不同为1。
接下来我们看一下
逻辑运算符(&&、||)与位运算符(&、|)的区别:
辑运算符只能针对boolean类型进行逻辑运算,而位运算还可以对数值进行逻辑运算。 逻辑运算符有短路情况,即前面的表达式可以得到最终结果时,后面的表达式将不被执行
下面我们就用一个程序来展现出位运算符与逻辑运算符的区别
public class shi{ public static void main(String [ ] args){ int x=10; int y=10; if((x=0)==0||(y=20)==20){ System.out.println(y); } int a=10;int b=10; if((a=0)==0 | (b=20)==20){ System.out.println(b); } } }接下来我们看一下运行结果
由此可见逻辑运算符||当连接的第一部分为true时就不再执行右侧程序,故输出结果为10,而位运算符|则左右部分都会执行,所以输出结果是20.