题目
读入两个整数 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