java中可用switch语句基于char型运算符实现简单计算器,分别处理+、-、*、/,需校验除零并用default捕获非法符号,支持java7+的string类型switch扩展别名匹配。

Java 中可以用 switch 语句根据用户输入的运算符(如 +、-、*、/)来选择执行对应计算逻辑,实现一个简单计算器。关键在于:把运算符作为 switch 的判断条件,每个 case 处理一种运算,并注意除零和非法字符的处理。
基本结构:用 char 类型接收运算符
因为四则运算符是单个字符,推荐用 char 类型作为 switch 的表达式,简洁且高效:
- 用
Scanner读取两个数字和一个字符(例如用next().charAt(0)获取第一个非空格字符) -
switch (operator)分支分别匹配'+'、'-'、'*'、'/' - 每个
case后别忘了加break,避免穿透 - 用
default处理不支持的符号(如%、^等)
处理除零异常:在 '/' case 中提前校验
除法必须检查第二个数是否为 0,否则会抛出 ArithmeticException:
- 在
case '/'中先判断num2 == 0 - 如果是,打印错误提示(如 "错误:除数不能为零"),并跳过计算
- 否则正常执行
result = num1 / num2
完整可运行示例(含输入提示与结果输出)
以下是一个控制台版简单计算器的核心逻辑片段:
Scanner sc = new Scanner(System.in);
System.out.print("请输入第一个数: ");
double num1 = sc.nextDouble();
System.out.print("请输入运算符 (+, -, *, /): ");
char op = sc.next().charAt(0);
System.out.print("请输入第二个数: ");
double num2 = sc.nextDouble();
<p>double result = 0;
boolean valid = true;</p><p>switch (op) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '<em>':
result = num1 </em> num2;
break;
case '/':
if (num2 == 0) {
System.out.println("错误:除数不能为零");
valid = false;
} else {
result = num1 / num2;
}
break;
default:
System.out.println("错误:不支持的运算符 '" + op + "'");
valid = false;
}</p><p>if (valid) {
System.out.println(num1 + " " + op + " " + num2 + " = " + result);
}</p>
进阶小提示:支持字符串运算符(Java 7+)
如果想直接输入 "add" 或 "minus" 这类字符串,Java 7 起也支持 String 类型的 switch:
- 用
sc.next()读取字符串,转为小写统一处理 -
switch (opStr.toLowerCase())匹配"+"、"plus"、"add"等别名(需手动映射) - 但对简单计算器,用
char更轻量、更直观
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











