今日目标
掌握 Java 中常用的运算符(算术、赋值、比较、逻辑、自增自减)理解运算符的优先级和结合性学会用表达式实现简单的逻辑计算
一、算术运算符
用于基本的数学运算,和数学中的规则类似。
| 运算符 | 作用 | 示例 | 结果 |
|---|---|---|---|
| + | 加法 | |
8 |
| – | 减法 | |
2 |
| * | 乘法 | |
15 |
| / | 除法 | (整数) |
2 |
| / | 除法 | (浮点) |
2.5 |
| % | 取余数(模) | |
1 |
| + | 字符串拼接 | |
“年龄:18” |
示例代码:
public class ArithmeticDemo {
public static void main(String[] args) {
int a = 10;
int b = 3;
// 基本运算
System.out.println("a + b = " + (a + b)); // 13
System.out.println("a - b = " + (a - b)); // 7
System.out.println("a * b = " + (a * b)); // 30
System.out.println("a / b = " + (a / b)); // 3(整数除法舍去小数)
System.out.println("a % b = " + (a % b)); // 1(10除以3余1)
// 浮点运算
double c = 10.0;
System.out.println("c / b = " + (c / b)); // 3.3333333333333335
// 字符串拼接(+号遇到字符串会变成拼接)
System.out.println("结果是:" + a + b); // "结果是:103"(先拼a,再拼b)
System.out.println("结果是:" + (a + b)); // "结果是:13"(括号改变优先级)
}
}
注意:
整数除法会自动舍弃小数部分(如 ),若需精确结果,至少有一个操作数是浮点型(如
7 / 3 = 2)。
7.0 / 3 号同时有 “加法” 和 “字符串拼接” 功能,当两边有一个是字符串时,就会执行拼接。
+
二、赋值运算符
用于给变量赋值,最基本的是 ,还有复合赋值运算符(简化代码)。
=
| 运算符 | 作用 | 等价写法 |
|---|---|---|
| = | 基本赋值 | |
| += | 加后赋值 | → |
| -= | 减后赋值 | → |
| *= | 乘后赋值 | → |
| /= | 除后赋值 | → |
| %= | 取余后赋值 | → |
示例代码:
public class AssignmentDemo {
public static void main(String[] args) {
int a = 10;
a += 5; // 等价于 a = a + 5 → a变为15
System.out.println("a += 5 后:" + a); // 15
a *= 2; // 等价于 a = a * 2 → a变为30
System.out.println("a *= 2 后:" + a); // 30
a %= 7; // 等价于 a = a % 7 → 30除以7余2 → a变为2
System.out.println("a %= 7 后:" + a); // 2
}
}

三、自增自减运算符(++ /–)
专门用于变量的 “加 1” 或 “减 1” 操作,有两种用法:前置()和后置(
++a)。
a++
| 运算符 | 作用 | 前置(++a) | 后置(a++) |
|---|---|---|---|
| ++ | 变量加 1 | 先加 1,再使用变量的值 | 先使用变量的值,再加 1 |
| — | 变量减 1 | 先减 1,再使用变量的值 | 先使用变量的值,再减 1 |
示例代码:
public class IncrementDemo {
public static void main(String[] args) {
int a = 5;
int b = 5;
// 自增示例
int c = ++a; // 前置++:a先加1(a=6),再赋值给c → c=6
int d = b++; // 后置++:先把b的值(5)给d,再b加1(b=6)
System.out.println("a = " + a); // 6
System.out.println("b = " + b); // 6
System.out.println("c = " + c); // 6
System.out.println("d = " + d); // 5
// 自减示例
int x = 3;
int y = x--; // 后置--:y=3,x变为2
System.out.println("x = " + x + ", y = " + y); // x=2, y=3
}
}

注意:
自增自减运算符只能用于变量(如 会报错)。实际开发中,尽量避免在复杂表达式中使用(如
5++),可读性差。
a = b++ + ++c
四、比较运算符
用于比较两个值的关系,结果是 布尔值(true /false),常用于条件判断。
| 运算符 | 作用 | 示例 | 结果 |
|---|---|---|---|
| == | 等于 | |
false |
| != | 不等于 | |
true |
| > | 大于 | |
true |
| < | 小于 | |
false |
| >= | 大于等于 | |
true |
| <= | 小于等于 | |
false |
示例代码:
public class ComparisonDemo {
public static void main(String[] args) {
int age = 18;
System.out.println(age == 18); // true(年龄等于18)
System.out.println(age > 20); // false(年龄大于20?)
System.out.println(age <= 18); // true(年龄小于等于18?)
String name = "Java";
System.out.println(name.equals("Java")); // 字符串比较用equals(),结果true
// 注意:字符串不能用==比较内容(==比较的是地址),后面会详解
}
}

注意:
比较运算符的结果一定是 或
true。比较字符串内容时,要用
false 方法(如
equals()),而不是
str1.equals(str2)(
== 用于基本类型比较值,用于引用类型比较地址)。
==
五、逻辑运算符
用于连接多个布尔表达式,判断复合条件,结果也是布尔值。
| 运算符 | 名称 | 作用(当左边为… 时) | 示例(a=true, b=false) | 结果 |
|---|---|---|---|---|
| && | 逻辑与 | 两边都为 true,结果才为 true;左边为 false 则右边不执行(短路) | |
false |
| || | 逻辑或 | 至少一边为 true,结果就为 true;左边为 true 则右边不执行(短路) | |
true |
| ! | 逻辑非 | 取反(true 变 false,false 变 true) | |
false |
示例代码:
public class LogicDemo {
public static void main(String[] args) {
boolean isStudent = true;
int score = 85;
// 逻辑与(&&):两个条件都满足才为true
boolean canAward = isStudent && score >= 80;
System.out.println("能否获奖:" + canAward); // true(是学生且分数≥80)
// 逻辑或(||):满足一个条件就为true
boolean isPass = score >= 60 || isStudent;
System.out.println("是否通过:" + isPass); // true(分数≥60,所以右边不执行)
// 逻辑非(!):取反
boolean isNotStudent = !isStudent;
System.out.println("不是学生:" + isNotStudent); // false
}
}

关键:短路特性
:如果左边为
&&,右边的表达式不会执行(因为结果肯定是
false)。
false:如果左边为
||,右边的表达式不会执行(因为结果肯定是
true)。
true
例如:
int x = 5;
boolean flag = (x > 10) && (x++ > 0);
// 左边x>10为false,右边x++不执行,所以x仍为5
System.out.println(x); // 5
六、运算符优先级
当一个表达式中有多个运算符时,执行顺序遵循 “优先级”(和数学中的 “先乘除后加减” 类似)。
大致优先级(从高到低):
括号 (可以改变优先级,建议多用)自增自减
()
++算术运算符(
--
*
/ 高于
%
+)比较运算符(
-
>
<
>= 高于
<=
==)逻辑运算符(
!= 高于
!,
&& 高于
&&)赋值运算符(
||
= 等,优先级最低)
+=
示例:
int result = 10 + 20 * 2;
// 先算20*2=40,再算10+40=50 → result=50
int result2 = (10 + 20) * 2;
// 括号改变优先级,先算10+20=30,再*2 → result2=60
建议:复杂表达式中尽量用括号明确顺序,提高可读性(不用死记优先级)。
七、练习
定义变量 ,
x=15,计算并输出:
y=4
x + y * 3
(x + y) % 5 和
x / y(思考:商和余数的关系是否满足
x % y?)
x = y * 商 + 余数
定义变量 ,执行
a=3 后,
int b = a++ * 2 和
a 的值分别是多少?
b
用逻辑运算符判断:一个整数 是偶数且大于 10(输出
n 或
true)。
false
今日总结
算术运算符:,注意整数除法和字符串拼接。赋值运算符:
+ - * / % 等,用于简化赋值操作。自增自减:
= += -=
++,区分前置(先变后用)和后置(先用后变)。比较运算符:结果为布尔值,字符串比较用
--。逻辑运算符:
equals(),注意短路特性。优先级:用括号明确顺序更清晰。
&& || !














暂无评论内容