逻辑运算符 | 功能 |
---|---|
||(短路或) | 都为false,则false。有一个为true便不再继续判断了 |
|(逻辑或) | 都为false,则false。所有的条件都判断 |
&&(短路与) | 都为true,则true。有一个为false便不再继续判断了 |
&(逻辑与) | 都为true,则true。所有的条件都判断 |
!(非) | 变成相反的样子 |
^(异或) | 相同则为false,不相同则为true |
1.||和|号
int a = 10;
int b = 4;
//短路或 一个成立,后面的不运行了
if (a > 0 || (b++) > 4){
System.out.println("a > 0 | (b++) > 4");
System.out.println(b); //用来判断后面的b++是否被执行
}
//逻辑或 所有的都运行
if (a > 0 | (b++) > 4){
System.out.println("a > 0 | (b++) > 4后b的值为:");
System.out.println(b); //用来判断后面的b++是否被执行
}
结果:
可以很明显的看到a>0成立 | 后面的也执行了而||就没有执行
2.&&和&号
int a = 10;
int b = 4;
//短路与 一个成立,后面的不运行了
if (a > 100 && (b++) <5){
}
System.out.println("a < 100 && (b++) <5后b的值为:");
System.out.println(b); //用来判断后面的b++是否被执行
//逻辑与 所有的都运行
if (a > 100 & (b++) <5){
}
System.out.println("a < 100 & (b++) <5后b的值为:");
System.out.println(b); //用来判断后面的b++是否被执行
结果:
可以很明显的看到 a>100条件不成立 &后面的也执行了而&&就没有执行
3.^号
Boolean boolean1 = 4 > 5; //false
Boolean boolean2 = 4 > 3; //true
Boolean boolean3 = boolean1 ^ boolean2; //相同为false,不同为true结果应为true
int num1 = 10; // 二进制为:1010
int num2 = 7; //二进制为: 111
System.out.println(boolean3);
System.out.println(num1 ^ num2); //相同为0,不相同为1 结果二进制为1101 变成十进制为13
结果:
4.!号
boolean bool = false;
System.out.println(!bool); //变为true
System.out.println(!!bool); //又变回false
结果: