java控制台计算器用scanner获取双精度数和运算符,用switch处理加减乘除(含除零检查),do-while循环支持重复计算,统一大小写比较并提示错误,结果保留两位小数。

Java 中实现一个简单的控制台计算器,核心是用流程控制语句(if-else、switch)处理用户输入的运算符,并配合循环(如 while 或 do-while)让程序持续运行直到用户选择退出。
1. 用 Scanner 获取用户输入
先从控制台读取两个数字和一个运算符。注意处理输入异常(比如输入非数字),避免程序崩溃。
- 使用 Scanner 读取 double 类型数字和 String 类型运算符
- 用 hasNextDouble() 预判输入是否为有效数字,否则调用 nextLine() 清空错误输入
- 运算符建议统一转小写或大写,便于后续比较
2. 用 switch 处理四则运算
switch 比 if-else 更清晰地表达“根据运算符执行不同逻辑”,适合单个字符或字符串分支(Java 7+ 支持 String switch)。
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
- case "add" / "+" / "plus":执行加法
- case "sub" / "-" / "minus":执行减法
- case "mul" / "*" / "times":执行乘法
- case "div" / "/" / "divide":执行除法(需额外判断除数是否为 0)
- default:提示“不支持的运算符”,并跳过本次计算
3. 用 do-while 实现重复计算
让用户算完一次后,询问是否继续,输入 "y" 或 "yes" 就继续,其他则退出。
- 把整个输入→计算→输出流程放在 do-while 循环体内
- 循环条件设为 choice.equalsIgnoreCase("y") || choice.equals("yes")
- 每次循环开始前清空 Scanner 缓冲区(尤其在 nextLine() 和 nextDouble() 混用时)
4. 简单但关键的健壮性处理
真正可用的计算器不能一输错就报错退出。几个小改进让体验更友好:
- 除零时打印“错误:除数不能为零”,不终止程序
- 输入非数字时提示“请输入有效数字”,并跳过本次运算
- 支持多种符号写法(如 +、add、plus),提升交互自然感
- 最后输出结果保留两位小数(用 String.format("%.2f", result))
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










