逻辑运算符
作用:用于连接左右两边布尔值
&(逻辑与)、|(逻辑或)、^(逻辑异或)、!(逻辑非)
&&(双与)、||(双或) (常用)
class LuoJi{
public static void main(String[] args) {
//定义变量
int a=1;
int b=2;
int c=3;
//操作&
System.out.println((a>b)&(b>c)); //false & false---------F
System.out.println((a>b)&(b<c)); //false & true----------F
System.out.println((a<b)&(b>c)); //true & false----------F
System.out.println((a<b)&(b<c)); //true & true ----------T
//操作|
System.out.println((a>b)|(b>c)); //false & false---------F
System.out.println((a>b)|(b<c)); //false & true----------T
System.out.println((a<b)|(b>c)); //true & false----------T
System.out.println((a<b)|(b<c)); //true & true ----------T
//操作^
System.out.println((a>b)^(b>c)); //false & false---------F
System.out.println((a>b)^(b<c)); //false & true----------T
System.out.println((a<b)^(b>c)); //true & false----------T
System.out.println((a<b)^(b<c)); //true & true ----------F
//操作!
System.out.println(!(b>c));//ture
总结:
1.&:遇见false则false
2.|:遇见true则true
3.^:相同则false,不同则true(吸铁石 同性相斥、异性相吸)
4.!:结果值取反(当出现偶数个时结果不变)
//操作&&
//和逻辑与的运算规律一致
System.out.println((a>b)&&(b>c)); //false & false---------F
System.out.println((a>b)&&(b<c)); //false & true----------F
System.out.println((a<b)&&(b>c)); //true & false----------F
System.out.println((a<b)&&(b<c)); //true & true ----------T
System.out.println((a++==b)&(b>c--)); //false双与的短路效果
System.out.println(a);//2
System.out.println(b);//3
System.out.println((true)&&(a++==b)||(b>c--));
System.out.println(a);//2
System.out.println(b);//2
System.out.println((true)||(a++==b)&&(b>c--));
System.out.println(a);//1
System.out.println(b);//3
}
总结:
1.&&和&运算规律一致,但是当&&左边出现false时,右边默认不执行----短路效果
2.||和|运算规律一致,但是当||左边出现true时,右边默认不执行—短路效果