Java余数运算符使用求助:编写判断整数倍数的程序
Java入门:判断整数倍数的程序修正与基础讲解
1. 核心知识点通俗解释
- 余数运算符
%:类比小学除法的余数——比如10÷3商3余1,10 % 3的结果就是1。如果数A % 数B == 0,说明数A能被数B整除,也就是数A是数B的倍数。 - if-else语句:就是日常的“如果满足条件就做A,否则做B”逻辑,比用两个独立if更严谨,不会出现逻辑重叠。
- 代码括号规则:if/else后面如果只有一行代码,可以省略大括号,但建议始终用大括号包裹代码块——就像给代码加个“边界”,后续加代码时不容易出错。
2. 你的代码问题梳理
原代码存在这些明显错误:
- 没有创建读取输入的
Scanner对象,input变量未定义 - 判断逻辑错误:用“两数相等”代替了“余数为0”的倍数判断
printf格式串语法错误:引号不匹配、占位符和参数对应错误- 缺少除数非零判断:直接用
number2做除数会触发除以0的报错
3. 完整修正代码
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 && number1 % number2 == 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(); // 关闭输入通道,释放资源 } }
4. 代码细节说明
- Scanner导入与创建:
import java.util.Scanner;相当于告诉程序“我要用到输入工具”,Scanner input = new Scanner(System.in);则是打开了键盘输入的通道。 - 除数非零判断:
number2 != 0必须放在前面,避免出现除以0的运行错误。 - printf用法:
%d是整数占位符,后面的参数会按顺序替换占位符,%n是跨平台的换行符。
内容的提问来源于stack exchange,提问作者HHH
相关产品推荐
相关产品推荐

