Appearance
2026-08-27 · 算术、逻辑、关系、赋值、三元、位运算,每种都带代码示例。
Java 运算符
1. 算术运算符
数学计算,小学数学升级版:
java
int a = 10, b = 3;
System.out.println(a + b); // 13 加
System.out.println(a - b); // 7 减
System.out.println(a * b); // 30 乘
System.out.println(a / b); // 3 整数除法,直接截断(不是四舍五入)
System.out.println(a % b); // 1 取模(取余数)整数除法是截断,不是四舍五入:
10 / 3 = 3,不是3.333。想要小数,至少一个操作数是double:10.0 / 3 = 3.333...。
自增自减(简写):
java
int i = 5;
i++; // 等价于 i = i + 1,现在 i = 6
i--; // 等价于 i = i - 1,现在 i = 52. 关系运算符
比较两个值,返回 true 或 false:
java
int a = 10, b = 20;
System.out.println(a == b); // false 等于
System.out.println(a != b); // true 不等于
System.out.println(a > b); // false 大于
System.out.println(a < b); // true 小于
System.out.println(a >= 10); // true 大于等于
System.out.println(a <= 5); // false 小于等于
==是比较(判断是否相等),=是赋值(把值给变量)。初学最常混淆的就是这两个。
3. 逻辑运算符
连接多个条件:
java
int age = 25;
boolean income = true;
// && 与(两个条件都为 true 才 true)
System.out.println(age >= 18 && income); // true
// || 或(至少一个为 true 就 true)
System.out.println(age < 18 || income); // true
// ! 非(取反)
System.out.println(!income); // false短路特性(重要):
java
// && 短路:左边 false,右边直接不执行
int x = 0;
if (x != 0 && 10 / x > 2) {
// 右边 10/x 会被执行吗?不会!因为左边已经 false 了
// 这就是短路,防止除以零报错
}
// || 短路:左边 true,右边直接不执行
&&和||有短路,&和|没有(不管左边结果都执行右边)。日常用&&/||,几乎不用&/|做逻辑判断。
& 和 && 的区别:
&:非短路,两边都执行(但结果一样)&&:短路,左边 false 后边不执行(性能更好,能防止意外错误)- 实际开发几乎只用
&&,&主要用在位运算里
| 和 || 同理。
4. 赋值运算符
给变量赋值,= 最基础,复合运算符简写:
java
int a = 10; // 基本赋值
a += 5; // 等价于 a = a + 5,现在 a = 15
a -= 3; // 等价于 a = a - 3,现在 a = 12
a *= 2; // 等价于 a = a * 2,现在 a = 24
a /= 4; // 等价于 a = a / 4,现在 a = 6
a %= 5; // 等价于 a = a % 5,现在 a = 1
+=等复合运算符会自动处理类型转换,比直接写=更安全。比如byte b = 10; b += 5;能编译,但b = b + 5;编译报错(b + 5自动提升为int,不能直接赋给byte)。
5. 三元运算符
条件 ? 真值 : 假值,if-else 的简写:
java
int score = 85;
String result = score >= 60 ? "及格" : "不及格";
System.out.println(result); // 及格
// 等价于:
String result2;
if (score >= 60) {
result2 = "及格";
} else {
result2 = "不及格";
}条件简单时用三元,逻辑复杂时老老实实写
if-else(可读性更好)。