全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-09 5 分钟 ✍️ juanwangdev

算术运算符

算术运算符用于执行数学计算。

基本算术运算符

加减乘除

Java
int a = 10, b = 3;

// 加法
int sum = a + b;   // 13

// 减法
int diff = a - b;  // 7

// 乘法
int product = a * b;  // 30

// 除法
int quotient = a / b;  // 3(整数除法截断)

// 取模(求余)
int remainder = a % b;  // 1

浮点数运算

Java
double x = 10.0, y = 3.0;

double result1 = x / y;   // 3.333...
double result2 = x % y;   // 1.0

// 浮点数除法保留精度
int a = 10, b = 3;
double result = a / b;    // 3.0(整数除法结果转为double)
double result2 = 10.0 / 3;  // 3.333...(浮点除法)

除法注意事项

整数除法截断

Java
// 整数除法:截断小数部分
int a = 7 / 2;   // 3(不是3.5)
int b = 7 / 3;   // 2

// 想保留小数:使用浮点数
double c = 7.0 / 2;  // 3.5
double d = 7 / 2.0;  // 3.5
double e = (double) 7 / 2;  // 3.0(7先转为double,再除2)

除零异常

Java
int a = 10;

// 整数除零:抛异常
// int b = a / 0;   // ArithmeticException: / by zero

// 浮点除零:返回Infinity
double c = 10.0 / 0;   // Infinity(无穷大)
double d = -10.0 / 0;  // -Infinity
double e = 0.0 / 0;    // NaN(非数值)

取模运算

取模规则

Java
// 取模:求余数
10 % 3    // 1
10 % 5    // 0
7 % 2     // 1

// 负数取模
-10 % 3   // -1(结果符号与左操作数相同)
10 % -3   // 1
-10 % -3  // -1

// 浮点取模
10.5 % 3.0  // 1.5

取模应用场景

Java
// 判断奇偶
int n = 7;
if (n % 2 == 0) {
    // 偶数
} else {
    // 奇数
}

// 循环计数(周期性)
for (int i = 0; i < 10; i++) {
    if (i % 3 == 0) {
        System.out.println("每隔3个");
    }
}

// 数字拆分
int num = 12345;
int lastDigit = num % 10;  // 5(取最后一位)

自增自减运算符

自增运算符++

Java
int a = 5;

// 后置自增:先用后增
int b = a++;  // b = 5, a = 6
// 先取a的值赋给b,再让a自增

// 前置自增:先增后用
int c = ++a;  // c = 7, a = 7
// 先让a自增,再取值赋给c

自减运算符--

Java
int a = 5;

// 后置自减:先用后减
int b = a--;  // b = 5, a = 4

// 前置自减:先减后用
int c = --a;  // c = 3, a = 3

前置后置区别

运算符执行顺序示例
a++先用后增b=a++; b=5,a=6
++a先增后用b=++a; b=6,a=6
a--先用后减b=a--; b=5,a=4
--a先减后用b=--a; b=4,a=4
Java
// 实例对比
int x = 5;
int y = x++;  // y = 5, x = 6

int z = 5;
int w = ++z;  // w = 6, z = 6

// 循环中常见
for (int i = 0; i < 5; i++) {
    // i++:循环后自增
}

运算符优先级

算术优先级

Java
优先级(从高到低):
1. ++、--(自增自减)
2. *、/、%(乘除取模)
3. +、-(加减)

// 括号改变优先级
int result = 2 + 3 * 4;     // 14(先乘后加)
int result2 = (2 + 3) * 4;  // 20(括号优先)

复合表达式

Java
int a = 5, b = 3, c = 2;

int result = a + b * c - a / b;
// 计算顺序:b*c=6, a/b=1, a+6-1=10

// 使用括号明确顺序
int result2 = (a + b) * (c - a) / b;

算术运算符总结表

运算符说明示例
+加法5 + 3 = 8
-减法5 - 3 = 2
*乘法5 * 3 = 15
/除法5 / 3 = 1
%取模5 % 3 = 2
++自增a++ 或 ++a
--自减a-- 或 --a

类型提升

自动类型提升

text
// 小类型与大类型运算,提升为大类型
int a = 5;
double b = 3.0;

double result = a + b;  // int提升为double

// byte/short/char运算提升为int
byte x = 10, y = 20;
int sum = x + y;  // byte运算结果为int
// byte sum2 = x + y;  // 编译错误
byte sum3 = (byte)(x + y);  // 需强转

要点总结

  • 加减乘除:+、-、*、/
  • 取模运算:%(求余数)
  • 整数除法截断小数部分
  • 整数除零抛ArithmeticException
  • 浮点除零返回Infinity或NaN
  • 自增:++a先增后用,a++先用后增
  • 自减:--a先减后用,a--先用后减
  • 乘除优先级高于加减
  • 括号可改变运算优先级
  • 不同类型运算自动提升为大类型
  • byte/short/char运算提升为int

📝 发现内容有误?点击此处直接编辑

← 上一篇 条件运算符
下一篇 → 赋值运算符
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库