题目
从标准输入读入两个整数 a、b,依次输出和、差、积、整数商;若 b 为 0,不要做除法。
输入格式:一行输入两个整数 a 和 b,以空格分隔。
输出格式:依次分行输出和、差、积与整除商;若除数为 0,商的部分输出提示说明。
数据范围与约定:-109 ≤ a, b ≤ 109。
思路与算法
1. 算术运算与表达式
和、差、积直接通过算术运算符 +、-、* 求解并输出。在 Java 语言中,两个整型相除 / 结果为截断取整(丢弃余数)。
2. 关键防御:除以零检查
在执行除法 a / b 之前,必须显式判断除数 b != 0。如果除数为 0,计算机底层会触发浮点异常(SIGFPE)导致程序异常崩溃。
3. 输入返回值校验Scanner 输入 返回成功读入的数据项数,本题需匹配读取 2 个整数。严格检查 Scanner 输入(...) == 2 是防御性编程的好习惯。
完整程序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println("和: " + (a + b));
System.out.println("差: " + (a - b));
System.out.println("积: " + (a * b));
// 关键防御:除数不能为 0,防止触发 ArithmeticException 异常导致程序崩溃
if (b != 0) {
System.out.println("商: " + (a / b));
} else {
System.out.println("商: 除数为 0,无法整除");
}
}
}运行示例
输入:
7 2输出:
和: 9
差: 5
积: 14
商: 3