
本文手把手教你用java的取余运算符(%)判断一个整数是否为另一个整数的倍数,包含语法详解、常见错误分析、可运行示例代码及关键注意事项,专为初学者设计。
在Java中,判断“整数A是否是整数B的倍数”,核心在于理解并正确使用取余运算符 %——它不是求百分比,而是计算两个整数相除后的余数。例如:10 % 3 的结果是 1(因为10 ÷ 3 = 3余1),而 12 % 4 的结果是 0(因为12 ÷ 4 = 3余0)。因此,当 a % b == 0 时,说明 a 能被 b 整除,即 a 是 b 的倍数——这正是本题的逻辑基础。
下面是一个完整、可直接在 NetBeans(或任意Java环境)中运行的示例程序:
import java.util.Scanner;
public class MultipleChecker {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter first integer: ");
int number1 = input.nextInt();
System.out.print("Enter second integer: ");
int number2 = input.nextInt();
// ⚠️ 关键安全检查:除数不能为0!
if (number2 == 0) {
System.out.println("Error: Division by zero is undefined. Second integer cannot be 0.");
} else {
int remainder = number1 % number2;
if (remainder == 0) {
System.out.printf("%d is a multiple of %d%n", number1, number2);
} else {
System.out.printf("%d is not a multiple of %d%n", number1, number2);
}
}
input.close(); // 好习惯:关闭Scanner资源
}
}? 初学者常见错误与修正说明(对照你原代码):
- ❌ System.out.printf("number1 is and ); → 字符串未闭合、引号错位、变量未传入;
- ❌ if (number1 == number2) → 逻辑错误:相等不等于“倍数”(如 5 和 5 满足,但 10 和 5 也满足倍数却不相等);
- ❌ 缺少 Scanner 声明和 import 语句;
- ❌ 括号不匹配(如多出的 }、缺少 {)、分号遗漏(如 printf 行末缺 ;);
- ❌ 未处理 number2 == 0 的异常情况——这是运行时崩溃的高发点!
✅ 关键要点总结:
立即学习“Java免费学习笔记(深入)”;
- % 是取余运算符,只对整数有效,结果符号与被除数一致(如 -10 % 3 得 -1);
- 判断倍数唯一可靠条件是 a % b == 0,且必须确保 b ≠ 0;
- printf 中 %d 占位符需严格按顺序对应后续参数,结尾加 %n 实现跨平台换行;
- 每个 if/else 分支若含多条语句,必须用 {} 包裹(即使只有一行,也强烈建议养成习惯,避免逻辑错误)。
掌握 % 运算符,就掌握了整除性判断的底层钥匙——它不仅是本题的核心,更是后续学习循环控制、奇偶判断、数组索引取模等场景的基础。动手运行一遍上述代码,再修改几个测试用例(如 15 & 5、17 & 4、0 & 8),你会立刻建立直观信心。










