算术运算是编程中最基础、最常用的操作之一。Java 提供了一套完整的算术运算符(Arithmetic Operators),用于对基本数据类型(如 int、double 等)执行加、减、乘、除、取余等数学运算。本文将系统讲解 Java 中的五种核心算术运算符,并通过示例帮助你深入理解其用法与注意事项。
掌握 Java 中 5 种基本算术运算符的语法与功能
能够编写程序实现用户输入的四则运算
理解整数除法与浮点除法的区别
避免常见陷阱(如除零异常、精度丢失等)
算术运算符是用于执行数学计算的符号。它们作用于操作数(operands)——即参与运算的变量或字面量。Java 的算术运算符包括:
✅ 所有算术运算符均为二元运算符(需要两个操作数),但
+和-也可作为一元运算符使用(如+5、-x)。
+)用于将两个数值相加。
result = num1 + num2;int num1 = 10, num2 = 20;
int sum = num1 + num2; // sum = 30class Addition {
public static void main(String[] args) {
int num1 = 10, num2 = 20;
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2);
System.out.println("The sum = " + (num1 + num2));
}
}输出:
num1 = 10
num2 = 20
The sum = 30💡 注意:
+还可用于字符串拼接(如"Hello" + "World"),但这是重载行为,不属于算术运算范畴。
-)用于计算两个数的差值。
result = num1 - num2;int num1 = 20, num2 = 10;
int diff = num1 - num2; // diff = 10class Subtraction {
public static void main(String[] args) {
int num1 = 20, num2 = 10;
System.out.println("Subtraction = " + (num1 - num2)); // 10
}
}*)用于计算两个数的乘积。
result = num1 * num2;int num1 = 20, num2 = 10;
int product = num1 * num2; // 200class Multiplication {
public static void main(String[] args) {
int num1 = 20, num2 = 10;
System.out.println("Multiplication = " + (num1 * num2)); // 200
}
}/)用于计算商。其行为取决于操作数的类型:
整数除法:若两个操作数均为整数,则结果为整数(截断小数部分)
浮点除法:只要有一个操作数是浮点数(float/double),结果即为浮点数
result = num1 / num2;int a = 7, b = 2;
System.out.println(a / b); // 输出 3(整数除法)
double x = 7.0, y = 2;
System.out.println(x / y); // 输出 3.5(浮点除法)class Division {
public static void main(String[] args) {
int num1 = 20, num2 = 10;
System.out.println("Division = " + (num1 / num2)); // 2
}
}⚠️ 重要警告:除数不能为 0!
整数除以 0 → 抛出
ArithmeticException浮点数除以 0 → 返回
Infinity或NaN
%)返回除法的余数,常用于判断奇偶性、循环边界等场景。
remainder = dividend % divisor;int num1 = 5, num2 = 2;
int mod = num1 % num2; // 1class Modulus {
public static void main(String[] args) {
int num1 = 5, num2 = 2;
System.out.println("Remainder = " + (num1 % num2)); // 1
}
}判断偶数:n % 2 == 0
循环索引回绕:index = (index + 1) % array.length
✅ 取模运算也支持负数:
-7 % 3 = -1
7 % -3 = 1
(余数符号与被除数相同)
以下程序演示如何结合 Scanner 类,实现一个支持用户输入的简单计算器:
import java.util.Scanner;
public class ArithmeticOperators {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter the first number: ");
double num1 = sc.nextDouble();
System.out.print("Enter the second number: ");
double num2 = sc.nextDouble();
// 执行四则运算
double sum = num1 + num2;
double difference = num1 - num2;
double product = num1 * num2;
double quotient = num2 != 0 ? num1 / num2 : Double.NaN; // 避免除零
// 输出结果
System.out.println("Sum: " + sum);
System.out.println("Difference: " + difference);
System.out.println("Product: " + product);
if (num2 != 0) {
System.out.println("Quotient: " + quotient);
} else {
System.out.println("Quotient: Cannot divide by zero!");
}
sc.close(); // 关闭资源
}
}Enter the first number: 20
Enter the second number: 10
Sum: 30.0
Difference: 10.0
Product: 200.0
Quotient: 2.0导入 Scanner:用于读取控制台输入
读取两个 double 类型数字:支持整数和小数
执行四则运算:使用标准算术运算符
安全除法处理:检查除数是否为 0,避免运行时异常
输出结果:清晰展示每项运算结果
Java 提供 5 种基本算术运算符:+、-、*、/、%
除法行为由操作数类型决定:整数 → 截断;浮点 → 保留小数
取模运算可用于循环、奇偶判断等场景
在实际开发中,优先使用 double 处理用户输入的数值,避免整数除法陷阱
永远不要忽略除零检查,尤其是在处理用户输入时
为什么 7 / 2 的结果是 3,而 7.0 / 2 的结果是 3.5?这体现了 Java 的什么特性?
如何修改上述计算器程序,使其也支持取模运算?需要注意哪些边界情况?
编写一个程序,判断用户输入的整数是奇数还是偶数,并解释你的实现逻辑。