注意事项:
- 关系运算符的结果都是boolean类型,要么是true,要么就是true,要么是false。
- 千万不要把“==”误写成“=”。
逻辑运算符概述
在数学中,一个数据x,大于3,小于6,我们可以这样来进行表示:3<x<6。
在java中,需要把上面的式子先进行拆解,再进行合并表示。
拆解为:x>3和x<6
合并后:x>3&&x<6
&&其实就是一个逻辑运算符。
我们可以这样说,逻辑运算符,是用来连接关系表达式的运算符。
当然,逻辑运算符也可以直接连接布尔类型的常量或者变量。
/*
逻辑运算符
*/
public class OperatorDemo01 {
public static void main(String[] args) {
//定义变量
int i = 10;
int j = 20;
int k = 30;
//& 有false则false
System.out.println((i > j) & (i > k));//false & false
System.out.println((i < j) & (i > k));//true & false
System.out.println((i > j) & (i < k));//false & true
System.out.println((i < j) & (i < k));//false & false
System.out.println("-------");
//| 有true则true
System.out.println((i > j) | (i > k));//false | false
System.out.println((i < j) | (i > k));//true | false
System.out.println((i > j) | (i < k));//false | true
System.out.println((i < j) | (i < k));//true | true
System.out.println("-------");
//^ 相同为false,不同为true
System.out.println((i > j) ^ (i > k));//false ^ false
System.out.println((i < j) ^ (i > k));//true ^ false
System.out.println((i > j) ^ (i < k));//false ^ true
System.out.println((i < j) ^ (i < k));//true ^ true
System.out.println("-------");
//!
System.out.println((i > j));//false
System.out.println(!(i > j));//!false
System.out.println(!!(i > j));//!!false
System.out.println(!!!(i > j));//!!!false
}
}
注意事项:
- 逻辑与&,无论左边真假,右边都要执行。
- 短路与&&,如果左边为真,右边执行,如果左边为假,右边不执行。
- 逻辑或|,无论左边真假,右边都要执行。
- 短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
/*
逻辑运算符
*/
public class OperatorDemo01 {
public static void main(String[] args) {
//定义变量
int i = 10;
int j = 20;
int k = 30;
//&& 有false则false
System.out.println((i > j) && (i > k));//false && false
System.out.println((i < j) && (i > k));//true && false
System.out.println((i > j) && (i < k));//false && true
System.out.println((i < j) && (i < k));//false && false
System.out.println("-------");
//|| 有true则true
System.out.println((i > j) | (i > k));//false || false
System.out.println((i < j) | (i > k));//true || false
System.out.println((i > j) | (i < k));//false || true
System.out.println((i < j) | (i < k));//true || true
System.out.println("-------");
//&&和&
System.out.println(i++ > 100) & (j++ > 100 );//false & false
System.out.println(i++ > 100) && (j++ > 100 );//false & false
System.out.println("i:" + i);
System.out.println("j:" + j);
}
}