java入门之逻辑运算符
1、逻辑运算符的应用,观察程序结果
class LJYSF{
public static void main(String[] args) {
//逻辑运算符: | & ^ || && !
//A:逻辑运算符有哪些
// &(并且) , |(或者) , !(非) , ^(异或) , &&(短路与) , ||(短路或)
//逻辑运算符的运算结果是布尔类型
int a=20;
int b=10;
boolean r=a>10&b>20&a<b;
r=a>b&true;
r=false&false;
r=true&false;
r=false&true;
r=true&true;
r=a*2-b*3>100|a<100;
r=true|false;
r=false|true;
r=false|false|true;
r=!true;
System.out.println("r:"+!r);
System.out.println("----------------------------------------");
//^ 运算规则 相同为false 不同为true
boolean bb=true ^ true;
System.out.println("bb:"+bb);
bb=false ^ false;
System.out.println("bb:"+bb);
bb=true ^ false;
System.out.println("bb:"+bb);
bb=false ^ true;
System.out.println("bb:"+bb);
}
}
结果:
r:true
----------------------------------------
bb:false
bb:false
bb:true
bb:true
2、& && | || 的区别:在最终运算结果上没有区别,只是在运算效率上有区别
class LJYSF2 {
public static void main(String[] args) {
//& 和 && 的区别
//boolean r=a>5&++b>=21;
// & 他两端的表达式一定都会执行
// && 当左端为false时 右端就不执行 只有左端为true 右端还是得要去执行
int a=10;
int b=20;
boolean r=a>5&&++b>=21;
System.out.println("r:"+r);
System.out.println("b:"+b);
//| 和 || 的区别
//boolean r1=c>5|++d>=21;
// | 他的两端都需执行
// || 只要左端为true了,右端的表达式,就不执行,只有左端为false了右端还得去执行
int c=10;
int d=20;
boolean r1=c<5||++d>=21;
System.out.println("r1:"+r1);
System.out.println("d:"+d);
}
}
结果:
r:true
b:21
r1:true
d:21