C#控制台计算器限制小数输入及新增功能如何实现?
C#控制台计算器修改方案
功能实现逻辑
- 输入合法性校验:全链路输入统一做两层校验,首先判断是否为
exit,是则直接终止程序;否则使用int.TryParse解析输入值,解析失败(含小数、非数字字符串)直接输出错误提示,回到输入环节 - 新增第三操作数:在原有x、y两个操作数基础上新增z操作数的输入校验逻辑,计算规则可根据业务需求调整,示例代码采用三数求和实现
- 修复原代码exit不生效问题:将原逻辑中触发exit后的
continue改为break,直接跳出死循环终止程序
修改后完整代码
class Program { static void Main(string[] args) { Console.WriteLine("计算器已启动,输入exit可随时终止程序"); do { // 读取第一个操作数x Console.Write("x = "); string input = Console.ReadLine()?.Trim() ?? string.Empty; if (input.Equals("exit", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine("程序已停止运行"); break; } if (!int.TryParse(input, out int x)) { Console.WriteLine("输入错误:请输入有效整数或输入exit退出"); continue; } // 读取第二个操作数y Console.Write("y = "); input = Console.ReadLine()?.Trim() ?? string.Empty; if (input.Equals("exit", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine("程序已停止运行"); break; } if (!int.TryParse(input, out int y)) { Console.WriteLine("输入错误:请输入有效整数或输入exit退出"); continue; } // 读取第三个操作数z Console.Write("z = "); input = Console.ReadLine()?.Trim() ?? string.Empty; if (input.Equals("exit", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine("程序已停止运行"); break; } if (!int.TryParse(input, out int z)) { Console.WriteLine("输入错误:请输入有效整数或输入exit退出"); continue; } // 计算逻辑可自行调整,此处示例为三数求和 int result = x + y + z; Console.WriteLine($"计算结果:{result}"); } while (true); } }
可选优化点
如果需要保留原有的除法逻辑,可自行修改计算规则,同时建议新增除零判断,避免程序触发除零异常崩溃。
内容的提问来源于stack exchange,提问作者Mr. Skadoosh
相关产品推荐
相关产品推荐

