题目

从标准输入读入两个整数 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