1,逻辑运算符有哪些
-
&, | , ^, !
-
&& ||
2,逻辑运算符的基本用法
特点:偶数个不改变本身。
-
&逻辑与: 有false则false。
-
|逻辑或: 有true则true。
-
^逻辑异或:相同为false,不同为true。
-
!逻辑非: 非false则true,非true则false。
3, 注意事项:
-
逻辑运算符一般用于连接boolean类型的表达式或者值。
-
表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
-
算术表达式:a + b
-
比较表达式:a == b(条件表达式)
-
class Demo1_Operator {
public static void main(String[] args) {
//&,|,^,!
//int x = 10;
//5 < x < 15
//x > 5 & x < 15
//逻辑与 & 并且and 遇false则false
int a = 10;
int b = 20;
int c = 30;
/*System.out.println(a < b & b < c); //true & true = true
System.out.println(a < b & b > c); //true & false = false
System.out.println(a > b & b < c); //false & true = false
System.out.println(a > b & b > c); //false & false = false*/
//逻辑或 或or 遇true则true
/*System.out.println(a < b | b < c); //true | true = true
System.out.println(a < b | b > c); //true | false = true
System.out.println(a > b | b < c); //false | true = true
System.out.println(a > b | b > c); //false | flase = false*/
//逻辑异或 ^ 两边相同为false,两边不同为true
/*System.out.println(a < b ^ b < c); //true | true = false
System.out.println(a < b ^ b > c); //true | false = true
System.out.println(a > b ^ b < c); //false | true = true
System.out.println(a > b ^ b > c); //false | flase = false*/
//逻辑非!
System.out.println(!true);
System.out.println(!!true);
}
}
4,&&和&的区别
-
最终结果一样。
-
&&具有短路效果。左边是false,右边不执行。
-
&是无论左边是false还是true,右边都会执行
5,||和|的区别
-
最终的结果是一样
-
||具有短路效果,左边为true,右边不执行
class Demo2_Operator {
public static void main(String[] args) {
/*int a = 10;
int b = 20;
int c = 30;
System.out.println(a < b && b < c); //true && true = true
System.out.println(a < b && b > c); //true && false = false
System.out.println(a > b && b < c); //false && true = false
System.out.println(a > b && b > c); //false && false = false*/
int x = 3;
int y = 4;
//System.out.println((++x == 3) & (++y == 4)); //false & false = false
//System.out.println("x = " + x); //x = 4
//System.out.println("y = " + y); //y = 5
System.out.println("---------------------------");
System.out.println((++x == 3) && (++y == 4)); //false & false = false
System.out.println("x = " + x); //x = 4
System.out.println("y = " + y); //y = 4
}
}