逻辑运算符的分类:
基本的逻辑运算符:
逻辑单与:&:有false则false
逻辑单或:|:有true则true
逻辑异或:^:相同则为false,不同则为true
逻辑非:!:!false则true;偶数个!是它本身
扩展的逻辑运算符:
逻辑双与:&&
逻辑双或:||
class OparatorDemo{
public static void main(String[] args){
int a=3;
int b=4;
int c=5;
//逻辑单与:&
System.out.println((a>b)&(a>c));
System.out.println((a>b)&(a<c));
System.out.println((a<b)&(a>c));
System.out.println((a<b)&(a<c));
System.out.println("----------------");
//逻辑单或:|
System.out.println((a>b)|(a>c));
System.out.println((a>b)|(a<c));
System.out.println((a<b)|(a>c));
System.out.println((a<b)|(a<c));
System.out.println("----------------");
//逻辑异或:^
System.out.println((a>b)^(a>c));
System.out.println((a>b)^(a<c));
System.out.println((a<b)^(a>c));
System.out.println((a<b)^(a<c));
}
}
扩展的逻辑运算符:
逻辑双与:&&
逻辑双或:||
面试题:
逻辑双与:&&和逻辑单与&的区别
共同点:都是并列关系,有false,则false
逻辑双与:&&和逻辑单与&的不同点:
存在短路效果:逻辑双与&&左边如果结果为false,右边的表达式不执行了;
逻辑双||:逻辑双||连接的表达式左边为true,右边就不执行了(逻辑双||的短路效果)
class OperatorDemo2{
public static void main(String[] args){
int a=3;
int b=4;
int c=5;
System.out.println((a>b)&&(a>c));
System.out.println((a>b)&&(a<c));
System.out.println((a<b)&&(a>c));
System.out.println((a<b)&&(a<c));
System.out.println("----------------");
//定义两个变量
int x=3;
int y=4;
System.out.println("x:"+x+",y:"+y);
//System.out.println(((++x)==3)&&((--y)==4));
//System.out.println("x:"+x+",y:"+y);
System.out.println(((++x)==3)&((--y)==4));
System.out.println("x:"+x+",y:"+y);
}
}