逻辑运算符:& && | || ! ^
【典型代码】
区分& 和 && 的区别
//逻辑&
相同点:运算结果相同
当符号左边都为true,& 和 && 都会继续执行符号右边的运算。
不同点:
当符号左边都为false时,& 会继续执行符号右边的运算,而&& 则不会继续执行符号右边的运算。
//开发中,举荐使用&&
boolean b1 = true;
//b1 = false;
int num1 = 10;
if(b1 & num1++ > 0){
System.out.println("我在北京");//b1 = true 我在北京
}else{
System.out.println("我在南京");//b1 = false 我在南京
}
sSystem.out.println("b1 = " + b1 + ",num1 = " + num1);//b1 = true时,继续执行 & 右边运算: num1 = 11
//System.out.println("b1 = " + b1 + ",num1 = " + num1);//b2 = false时,继续执行 & 右边运算:num1 = 11
//逻辑&&
boolean b2 = true;
//b2 = false;
int num2 = 10;
if(b2 && num2++ > 0){
System.out.println("我在北京");//b2 = true时,我在北京
} else{
System.out.println("我在南京");//b2 = false时,我在南京
}
System.out.println("b2 = " + b2 + ",num2 = " + num2);//b2 = true时,继续执行&&右边运算 :num2 = 11
//System.out.println("b2 = " + b2 + ",num2 = " + num2);//b2 = false时,不继续执行&&右边运算 :num2 = 10
区分 | 和 || 的区别
//逻辑 |
相同点:| 和 || 运算结果相同
当符号左边为false时, | 和 || 都会继续执行符号右边的运算
不同点:
当符号左边为true时,| 会继续执行符号右边的运算,而||则不会继续执行符号右边的运算。
//开发中,举荐使用||
boolean b3 = false;
b3 = true;
int num3 = 10;
if(b3 | num3++ > 0){
System.out.println("我在北京");// 都在北京
}else{
System.out.println("我在南京");
}
System.out.println("b3 = " + b3 + ",num3 = "+ num3);//b3 = fale时,继续执行 | 右边运算 num3 = 11
System.out.println("b3 = " + b3 + ",num3 = "+ num3);//b3 = true时,继续执行 | 右边运算 num3 = 11
//逻辑 ||
boolean b4 = false;
b4 = true;
int num4 = 10;
if(b4 || num4++ > 0){
System.out.println("我在北京");//都在北京
}else {
System.out.println("我在南京");
}
System.out.println("b4 = " + b4 + ",num4 " + num4);//b4 = false时,继续执行 || 右边运算: num4 = 11
System.out.println("b4 = " + b4 + ",num4 " + num4);//b4 = true时,不会继续执行 || 右边运算: num4 = 10
【特别说明】
1.逻辑运算符操作的都是boolean型的变量,而结果也都是boolean型