Java简易计算器推荐用switch处理四则运算,通过Scanner获取双精度数和字符运算符,switch分支计算并校验除零,default处理非法符号;if-else适合扩展字符串运算符或复杂逻辑,需注意字符串比较用equals、输入异常捕获及变量声明位置。

Java 中用选择分支(if-else 或 switch)实现简易计算器,核心是根据用户输入的运算符决定执行哪种计算逻辑。下面给出清晰、可运行的实现方式。
用 switch 处理四则运算(推荐)
switch 更适合处理多个固定字符或整数分支,代码简洁、可读性强:
- 先用 Scanner 获取两个数字和一个运算符(如 +、-、*、/)
- 用 switch (operator) 分支判断,每个 case 对应一种运算
- 注意除法要检查除数是否为 0,避免 ArithmeticException
- default 分支处理非法符号,提升程序健壮性
示例片段:
Scanner sc = new Scanner(System.in);
System.out.print("请输入第一个数:");
double a = sc.nextDouble();
System.out.print("请输入运算符(+ - * /):");
char op = sc.next().charAt(0);
System.out.print("请输入第二个数:");
double b = sc.nextDouble();
<p>double result = 0;
boolean valid = true;</p><p>switch (op) {
case '+': result = a + b; break;
case '-': result = a - b; break;
case '<em>': result = a </em> b; break;
case '/':
if (b == 0) {
System.out.println("错误:除数不能为零!");
valid = false;
} else {
result = a / b;
}
break;
default:
System.out.println("错误:不支持的运算符 '" + op + "'");
valid = false;
}
if (valid) System.out.println("结果:" + result);</p>用 if-else 实现(更灵活,适合扩展)
if-else 适合需要复杂条件判断(比如支持 %、^、括号等后续扩展),或运算符是字符串时:
立即学习“Java免费学习笔记(深入)”;
- 用 if (op.equals("+")) 判断字符串运算符(注意不能用 == 比较字符串)
- 每个 if/else if 块内完成对应计算和校验
- 最后用 else 捕获无效输入
适用于支持 "add"、"sub" 等英文指令,或需结合其他逻辑(如优先级预处理)的场景。
关键细节提醒
- 输入类型统一用 double,避免整数除法截断(如 5/2=2.0 而不是 2.5)
- 读取运算符时,sc.next().charAt(0) 比 sc.next() + charAt 更安全;若用 nextLine(),注意前一个 nextDouble() 后的换行残留问题
- 不要在 case 中声明同名变量(如都写 double result),会导致编译错误;统一声明在 switch 外
- 建议加 try-catch 包裹 Scanner 输入,捕获 InputMismatchException,防止输入字母崩掉程序
运行效果示意
用户输入:
请输入第一个数:12.5 请输入运算符(+ - * /):* 请输入第二个数:4 结果:50.0
输入非法符号或除零时,会提示错误,不崩溃,体验更友好。


















