C#控制台计算器程序:如何实现输入'x'时退出程序
解决C#控制台计算器输入'x'无法退出的问题
嘿,我仔细看了你的代码,问题很明确——你完全没在代码里处理输入'x'的逻辑!你的while(true)循环会一直无限运行,因为没有任何分支检查用户是不是输入了退出指令,所以你之前尝试的return;或者Environment.Exit()根本没机会被执行到~
具体修改方案
你需要在读取运算符的位置,立刻判断用户是否输入了'x'(可以兼容大小写),一旦检测到就执行退出操作。下面是修改后的关键代码部分:
while (true) { Console.WriteLine(); Console.Write("Välj räknesätt mellan + - * / : "); string operators = Console.ReadLine().Trim(); // 去掉前后空格,避免误判 // 新增:检查是否输入退出指令 if (operators.Equals("x", StringComparison.OrdinalIgnoreCase)) { Environment.Exit(0); // 直接终止程序,适用于任何方法内 // 如果这段代码在Main函数中,也可以用 return; 代替 } // 后续原有代码不变... }
额外优化建议
如果你希望用户在输入数字的环节也能通过输入'x'退出,可以在每个Console.ReadLine()读取数字的地方做类似检查。比如第一个数字的读取循环:
Console.Write("Skriv in en siffra: "); double firstUserInput; string firstInputStr = Console.ReadLine().Trim(); while (!Double.TryParse(firstInputStr, out firstUserInput)) { // 检查是否输入退出指令 if (firstInputStr.Equals("x", StringComparison.OrdinalIgnoreCase)) { Environment.Exit(0); } Console.WriteLine(); Console.Write("Ogiltigt värde, skriv in en siffra: "); firstInputStr = Console.ReadLine().Trim(); }
为什么之前的尝试无效?
你之前可能把return或Environment.Exit()放在了错误的位置,或者根本没有添加触发它们的判断逻辑。在你的原代码中,输入'x'后会跳过所有switch的case分支,然后直接进入下一轮循环,完全不会触发退出操作。
内容的提问来源于stack exchange,提问作者Emil
相关产品推荐
相关产品推荐

