Java 逻辑运算符中有几个需要注意的细节,在此记录一下。
目录
区分& 与 &&(且)
相同点1:& 与 && 的运算结果相同
相同点2:当符号左边是 true 时,二者都会执行符号右边的运算
不同点:当符号左边是 false 时,& 继续执行符号右边的运算,&& 不再执行符号右边的运算
class Test{
public static void main(String[] args){
boolean b1 = false;
int num1 = 10;
if(b1 & (num1++ > 0)){
System.out.println("薇尔莉特·伊芙加登");
}else{
System.out.println("远坂凛");
}
System.out.println("num1 = " + num1);
boolean b2 = false;
int num2 = 10;
if(b2 && (num2++ > 0)){
System.out.println("薇尔莉特·伊芙加登");
}else{
System.out.println("远坂凛");
}
System.out.println("num2 = " + num2);
}
}
>>> 远坂凛
num1 = 11
远坂凛
num2 = 10
此处 num1 与 num2 的值并不相同,是因为逻辑运算符导致的
区分 | 与 || (或者)
相同点1:| 与 || 的运算结果相同
相同点2:当符号左边是 false 时,二者都会执行符号右边的运算
不同点:当符号左边是 true 时,| 继续执行符号右边的运算,|| 不再执行符号右边的运算
class Test{
public static void main(String[] args){
boolean b1 = true;
int num1 = 10;
if(b1 | (num1++ > 0)){
System.out.println("薇尔莉特·伊芙加登");
}else{
System.out.println("远坂凛");
}
System.out.println("num1 = " + num1);
boolean b2 = true;
int num2 = 10;
if(b2 || (num2++ > 0)){
System.out.println("薇尔莉特·伊芙加登");
}else{
System.out.println("远坂凛");
}
System.out.println("num2 = " + num2);
}
}
>>> 薇尔莉特·伊芙加登
num1 = 11
薇尔莉特·伊芙加登
num2 = 10
此处与 上一节相同, num1 与 num2 的值并不相同,是因为逻辑运算符导致的
注:在开发中,我们会使用 && 和 || ,因为可以提高时间效率