一、算术运算符
用来做数学运算,最常见的有:
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
+ | 加法 | 3 + 5 | 8 |
- | 减法 | 10 - 4 | 6 |
* | 乘法 | 2 * 6 | 12 |
/ | 除法 | 7 / 2 | 3 |
% | 取模 / 取余 | 7 % 2 | 1 |
代码示例
public class Demo1Arithmetic { public static void main(String[] args) { int a = 10; int 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,余数是1 } }重点:两个整数相除,结果也是整数,小数部分会丢掉。
整数除法与小数除法
public class Demo2Divide { public static void main(String[] args) { // 整数除法:结果取整数 System.out.println(7 / 2); // 输出3 // 小数除法:只要有一个小数,结果就是小数 System.out.println(7.0 / 2); // 输出3.5 System.out.println(7 / 2.0); // 输出3.5 } }二、赋值运算符
用来把数据保存到变量中。
| 运算符 | 含义 | 示例 | 等价写法 |
|---|---|---|---|
= | 直接赋值 | int a = 10; | |
+= | 加后赋值 | a += 5; | a = a + 5; |
-= | 减后赋值 | a -= 3; | a = a - 3; |
*= | 乘后赋值 | a *= 2; | a = a * 2; |
/= | 除后赋值 | a /= 4; | a = a / 4; |
%= | 取余后赋值 | a %= 3; | a = a % 3; |
代码示例
public class Demo3Assignment { public static void main(String[] args) { int a = 10; a += 5; // 相当于 a = a + 5 System.out.println(a); // 15 a -= 3; // 相当于 a = a - 3 System.out.println(a); // 12 a *= 2; // 相当于 a = a * 2 System.out.println(a); // 24 a /= 4; // 相当于 a = a / 4 System.out.println(a); // 6 a %= 3; // 相当于 a = a % 3 System.out.println(a); // 0 } }注意:赋值运算符是 “把右边的结果赋给左边”,不是数学里的相等。
三、比较运算符
也叫关系运算符,用来比较两个数据,结果一定是boolean布尔值:true或false。
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
== | 等于 | 5 == 5 | true |
!= | 不等于 | 5 != 3 | true |
> | 大于 | 10 > 6 | true |
< | 小于 | 4 < 9 | true |
>= | 大于等于 | 7 >= 7 | true |
<= | 小于等于 | 6 <= 5 | false |
代码示例
public class Demo4Compare { public static void main(String[] args) { int a = 10; int b = 3; System.out.println(a == b); // false System.out.println(a != b); // true System.out.println(a > b); // true System.out.println(a < b); // false System.out.println(a >= b); // true System.out.println(a <= b); // false } }⚠易错:判断相等必须用
==,不是单个=。
四、逻辑运算符
用来连接多个条件,结果也是true或false。
| 运算符 | 含义 | 规则 | 示例 | 结果 |
|---|---|---|---|---|
&& | 逻辑与 / 并且 | 两边都为true,结果才是true | 5 > 3 && 8 > 6 | true |
|| | 逻辑或 / 或者 | 只要一边为true,结果就是true | 5 > 10 || 8 > 6 | true |
! | 逻辑非 / 取反 | true变false,false变true | !true | false |
代码示例
public class Demo5Logic { public static void main(String[] args) { int score = 85; // &&:并且,两边都要成立 boolean result1 = score > 60 && score < 100; System.out.println(result1); // true // ||:或者,只要一个成立即可 boolean result2 = score < 60 || score > 80; System.out.println(result2); // true // !:取反 boolean result3 = !(score > 60); System.out.println(result3); // false } }短路特性
&&:左边是false,右边不再执行,直接结果为false||:左边是true,右边不再执行,直接结果为true
public class Demo6ShortCircuit { public static void main(String[] args) { int a = 10; int b = 20; // &&左边为false,右边a++不会执行 boolean result1 = (a > 100) && (b++ > 10); System.out.println(result1); // false System.out.println(b); // 20,b没有变化 // ||左边为true,右边b++不会执行 boolean result2 = (a == 10) || (b++ > 10); System.out.println(result2); // true System.out.println(b); // 20,b没有变化 } }五、运算符的优先级
优先级决定运算顺序,常见顺序从高到低:
| 优先级 | 运算符 |
|---|---|
| 最高 | ()括号 |
| 高 | */% |
| 中 | +- |
| 中 | <><=>= |
| 中 | ==!= |
| 低 | && |
| 较低 | || |
| 最低 | =+=-=等赋值运算符 |
代码示例
public class Demo7Priority { public static void main(String[] args) { int result = 10 + 2 * 3; // 先乘后加:2 * 3 = 6,再加10 System.out.println(result); // 16 // 括号可以改变优先级 int result2 = (10 + 2) * 3; System.out.println(result2); // 36 // 逻辑运算中,比较运算先执行 boolean flag = 10 > 5 && 3 < 8; // 先算 10 > 5 得到 true // 再算 3 < 8 得到 true // 最后 true && true System.out.println(flag); // true } }建议:记不住优先级时,直接用
()括号明确顺序,代码更清晰。
本章小结
- 算术运算符:
+-*/%;整数除法会丢掉小数。 - 赋值运算符:
=+=-=*=/=%=,把右边结果赋给左边。 - 比较运算符:
==!=><>=<=,结果是boolean。 - 逻辑运算符:
&&并且、||或者、!取反;有短路特性。 - 优先级:括号最高,乘除高于加减,比较高于逻辑;不确定就加括号。