逻辑运算包括:与、或、非、异或。共6种运算符。true 表示真。false 表示假。
一、逻辑运算符
下表列出了逻辑运算符:
操作符
描述
&&,&
逻辑与运算符。当且仅当两个操作数都为真,结果才为真。
||,|
逻辑或操作符。当且仅当两个操作数都为假,结果才为假。
!
逻辑非运算符,又称取反运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。
^
异或运算符。两个操作数不相同则为true,相同则为false
比较结果图:
二、逻辑运算符的短路
&&、|| 这两个运算符带短路功能。
何为短路功能?短路就是当执行了一部分运算之后,表达式的运算结果已经出来了,没有必要再执行后续运算了。
如 a=true , b=false, 当执行a || b运算时,只要a为真,则表达式结果必然为真,无论b是 true 还是 false 。
&、| 这两个运算符不带短路功能。他两的运算结果跟“ && || ”的运算结果是一致的,只是过程不同。
代码演示:
public class HelloWorld {
public static void main(String[] args) {
//不带短路
System.out.println("不带短路");
System.out.println(trueMethod() | falseMethod()); // 两个方法都执行,输出true
//带短路
System.out.println("带短路");
System.out.println(trueMethod() || falseMethod()); // 只执行trueMethod方法,输出true。falseMethod方法未执行
boolean a=false;
boolean b=true;
//异或
System.out.println("异或");
System.out.println(a^b); //输出true
//取反
System.out.println("取反");
System.out.println(!a); //输出true
//与运算
System.out.println("与运算");
System.out.println(a&&b); //输出false
//或运算
System.out.println("或运算");
System.out.println(a||b); //输出true
}
static boolean trueMethod() {
System.out.println("---执行了trueMethod方法");
return true;
}
static boolean falseMethod() {
System.out.println("---执行了falseMethod方法");
return false;
}
}
总结:
1. 逻辑运算有四种类型,与、或、非、异或。
2. &&、|| 操作符有短路功能,& 、| 操作符无短路功能
3. 通过演示代码深入理解逻辑运算符的短路功能