题目

读入两个整数 a、b 和一个字符运算符(+、-、*、/),输出运算结果;除法时若 b 为 0 则提示错误。

思路

本题要做一个小计算器:读两个数和一个运算符,算出四则运算结果。 先读入 a、运算符字符 op、再读 b。若运算符是除法,必须先判断 b!=0,否则不能除。再用 switch(op) 或一组 if-else 分别处理 + - * /;遇到未知符号可以提示错误。

解题分析

运算符是单个字符,switch 很合适;default 处理未知符号。除法前检查 b==0,与第 1 题相同。

完整程序

import java.io.*;

public class Main {
    public static void main(String[] args) {
        String[] parts = new String[] {"10", "3", "*"};
        int a = Integer.parseInt(parts[0]), b = Integer.parseInt(parts[1]);
        char op = parts[2].charAt(0);
        if (op == '+') System.out.println(a + b);
        else if (op == '-') System.out.println(a - b);
        else if (op == '*') System.out.println(a * b);
        else if (op == '/') {
            if (b != 0) System.out.println(a / b);
            else System.out.println("除数为 0");
        } else System.out.println("未知运算符");
    }
}

运行示例

输出:

30

其它写法

下面每种写法都是完整程序,输入输出格式与正文一致,便于对照。

switch 分支

程序:


public class Main {
    public static void main(String[] args) {
        String[] parts = new String[] {"10", "3", "*"};
        int a = Integer.parseInt(parts[0]), b = Integer.parseInt(parts[1]);
        char op = parts[2].charAt(0);
        switch (op) {
            case '+':
            System.out.println(a + b);
            break;
            case '-':
            System.out.println(a - b);
            break;
            case '*':
            System.out.println(a * b);
            break;
            case '/':
            if (b != 0) System.out.println(a / b);
            else System.out.println("除数为 0");
            break;
            default:
            System.out.println("未知运算符");
        }
    }
}

运行示例

输出:

30