逻辑运算符
基本的逻辑运算符:
逻辑与&
结论:有false,则false
逻辑或|
结论:有true,则true
逻辑异或^
结论:
相同则为false,不同则为true
逻辑非!
结论:
非false,则true;非true则false
偶数个非是他本身!
扩展的逻辑运算符:
逻辑双与&&
结论:有false则false.
如果&&符号的左边表达式false,右边的就不执行了
逻辑双或||:
结论:有true则true
如果||符号左边的表达式为true,右边就不执行了…
下面用代码实现以下:
class Operator{
public static void main(String[] args){
//定义三个变量
int a = 3;
int b = 4 ;
int c = 5 ;
//逻辑与&
System.out.println((a>b) & (a>c));//false & false = false
System.out.println((a>b) & (a<c));//false & true = false
System.out.println((a<b) & (a>c));//true & false = false
System.out.println((a<b) & (a<c));//true & true = true
System.out.println("-------------------");
//逻辑或|
System.out.println((a>b) | (a>c)); //false | false = false
System.out.println((a>b) | (a<c)); //false | true = true
System.out.println((a<b) | (a>c));//true | false = true
System.out.println((a<b) | (a<c));//true | true = true
System.out.println("-------------------");
//逻辑异或^
System.out.println((a>b) ^ (a>c)); //false ^ false = false
System.out.println((a>b) ^ (a<c)); //false ^ true = true
System.out.println((a<b) ^ (a>c)); //true ^ false = true
System.out.println((a<b) ^ (a<c)) ;//true ^ true = false
System.out.println("-------------------");
//逻辑非!
System.out.println(!(a>b)) ;//!false = true
System.out.println(!!(a>b)) ;//!!false = false
System.out.println(!!!!(a>b));//false
//逻辑双与&&
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 ;
//boolean flag = ((x++)==3 & (y++)==4) ;
//boolean flag = ((x++)==3 && (y--)==4) ;
boolean flag = ((++x)==3 && (y--)==4) ;
System.out.println("x:"+x);//4 //4 //4
System.out.println("y:"+y);//5 //3 //4
System.out.println("flag:"+flag);//true //false
//逻辑双或跟逻辑双与道理都一样..概念在上面
}
}