🌟 想系统化学习 Java 编程?看看这个:[编程基础] Java · 学习手册
0x01:关系运算符 & 逻辑运算符 — 概览
关系运算符,有时也叫做 “比较运算符”,主要是用于判断运算符两侧变量的大小、真假等。关系运算返回的最终结果是布尔类型,即 true 或 false。
逻辑运算符,主要是用于对布尔类型的值进行判断,其判断的结果仍旧是布尔类型。值得注意的是,在 Java 中,进行逻辑运算时,要求运算符左右连接的都是布尔类型的操作数,否则会报错。
本章我们涉及的运算符如下表所示,读者可以按需学习,如果都会了,可以快速跳过:
类别 | 符号 | 说明 | 示例 |
---|---|---|---|
关系运算符 | > | 大于 | a > b |
关系运算符 | < | 小于 | a < b |
关系运算符 | == | 等于 | a == b |
关系运算符 | >= | 大于等于 | a >= b |
关系运算符 | <= | 小于等于 | a <= b |
关系运算符 | != | 不等于 | a != b |
逻辑运算符 | & | 逻辑与:只要有一个操作数为 false,结果就是 false | a & b |
逻辑运算符 | && | 短路与:只要第一个表达式是 false,第二表达式就会跳过计算 | a && b |
逻辑运算符 | | | 逻辑或:只要有一个操作数是 true,结果就是 true | a | b |
逻辑运算符 | || | 短路或:只要第一个操作数是 true,第二个表达式就会跳过计算 | a || b |
逻辑运算符 | ! | 非:取相反的结果。比如:a 为 true,!a 就是 false | !a |
逻辑运算符 | ^ | 异或:两个操作数相同为 false,不同为 true | a ^ b |
0x02:关系运算符详解
关系运算符,主要用于比较参与运算的两个变量的大小、真假等,其返回结果为布尔型。由于关系运算符比较简单,所以笔者这里直接就以一个例子来做讲解了:
public class TestVar {
public static void main(String[] args) {
System.out.println(1 > 1);
System.out.println(3 < 5);
System.out.println("我" == "我");
System.out.println(1 >= 0);
System.out.println(10 <= 10);
System.out.println("我" != "你");
}
}
0x03:逻辑运算符详解
0x0301:逻辑运算符 &
详解
逻辑与
&
:参与运算的两个操作数,只要有一个是 false,那么结果一定是 false。
public class TestVar {
public static void main(String[] args) {
// 逻辑与 `&`:参与运算的两个操作数,只要有一个是 false,那么结果一定是 false。
System.out.println(true & true);
System.out.println(true & false);
System.out.println(false & true);
System.out.println(false & false);
}
}
0x0302:逻辑运算符 &&
详解
短路与
&&
:只要第一个表达式是 false,那么就会跳过第二个表达式的计算,输出 false。
public class TestVar {
public static void main(String[] args) {
// 短路与 `&&`:只要第一个表达式是 false,那么就会跳过第二个表达式的计算,输出 false。
int num = 10;
System.out.println(false & (10 > num++));
System.out.println("num = " + num);
System.out.println(false && (10 > num++));
System.out.println("num = " + num);
}
}
0x0303:逻辑运算符 |
详解
逻辑或
|
:参与运算的两个操作数,只要有一个是 true,那么结果一定是 true。
public class TestVar {
public static void main(String[] args) {
// 逻辑或 `|`:参与运算的两个操作数,只要有一个是 true,那么结果一定是 true。
System.out.println(true | true);
System.out.println(true | false);
System.out.println(false | true);
System.out.println(false | false);
}
}
0x0304:逻辑运算符 ||
详解
短路或
||
:只要第一个表达式是 true,那么就会跳过第二个表达式的计算,输出 true。
public class TestVar {
public static void main(String[] args) {
// 短路或 `||`:只要第一个表达式是 true,那么就会跳过第二个表达式的计算,输出 true。
int num = 10;
System.out.println(true | (10 > num++));
System.out.println("num = " + num);
System.out.println(true || (10 > num++));
System.out.println("num = " + num);
}
}
0x0305:逻辑运算符 !
详解
取反
!
:对操作数进行取反操作。
public class TestVar {
public static void main(String[] args) {
// 取反 !: 对操作数进行取反操作
System.out.println(!true);
System.out.println(!false);
}
}
0x0306:逻辑运算符 ^
详解
异或
^
:参与运算的两个操作数,相同为 false,不同为 true。
public class TestVar {
public static void main(String[] args) {
// 异或 `^`: 参与运算的两个操作数,相同为 false,不同为 true
System.out.println(true ^ true);
System.out.println(true ^ false);
System.out.println(false ^ true);
System.out.println(false ^ false);
}
}