You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 16:07:45