逻辑运算符总览
逻辑与(&与)
特点:
-
整个逻辑运算符两边(变量或常量值)都是布尔值
-
操作值必须两个都是true结果才是true,只要有一个是false其结果就是false
逻辑或(|或)
-
两个操作数中有一个是true其返回值就是true
-
如果第一个操作数是false则要去看后一位操作数,如果后一位操作数是false则结果是false,如果后一位操作数是true则结果是true
逻辑非(!非---取反)
特点:
-
操作一个变量不是两个变量
-
!b1---如果b1是true结果就是false,如果b1是false结果就是true
逻辑异或(^异或)
-
b1^b2如果b1和b2都是true返回false,如果同为false结果也是false,只有一个是true一个是false返回结果为true
短路与(&&与---这个短路只需要运算一遍,一个为false就不去运算后面一位操作数)
-
只要有一个为false,则不需要去判断另一个是否为false直接返回false
短路或(||或)
-
只要有一个为true则直接返回true不需要去判断第二个操作数
-
如果前面一个操作数是false回去看后面,如果后面是true则返回true如果后面是false则返回false
一半在运算逻辑与和逻辑或的时候采用短路的方式,这样可以提高效率
实例:
/**
* TestOperatorNo5
* @author Lucifer
*/
public class TestOperatorNo5 {
public static void main(String arguments[]){
boolean b1 = true;
boolean b2 = false;
System.out.println(b1&b2);
System.out.println(b1|b2);
System.out.println(b1^b2);
System.out.println(!b2);
//短路
// int c = 3/0;
boolean b3 = 1>2 && 2<(3/0); //短路与:第一个操作数的值为false则不需要再计算第二位操作数
System.out.println(b3);
}
}