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

C#中输入1/2仍触发错误分支的条件判断问题排查

C#控制台决策游戏输入验证逻辑错误修复

问题原因

你的输入判断条件存在逻辑错误:
当前if条件使用||(逻辑或)连接answer != "1"和answer != "2",这会导致任何输入都满足该分支条件——因为一个字符串不可能同时等于"1"和"2",所以只要输入不是空/空格,要么answer != "1"为true,要么answer != "2"为true,最终整个条件表达式结果为true,直接触发错误提示分支。

修复方案

将非1非2的判断改为&&(逻辑与),表示输入**既不是"1"也不是"2"**时才触发错误分支,正确的条件表达式如下:

if (string.IsNullOrWhiteSpace(answer) || (answer != "1" && answer != "2"))

修复后的完整代码

bool runAgain = true;

while (runAgain)
{    
    Console.WriteLine("你的问题内容");  
    Console.WriteLine("请选择1或2");  

    string answer = Console.ReadLine();  
    answer = answer.Trim();  

    if (string.IsNullOrWhiteSpace(answer) || (answer != "1" && answer != "2"))  
    {  
        Console.WriteLine("Wrong Input");  
        // 无需重复设置runAgain = true,循环会自动继续
    }  
    else if (answer == "1")  
    {  
        runAgain = false;  
        // 输入1时执行的代码
    }  
    else  
    {  
        runAgain = false;  
        // 输入2时执行的代码
    } 
} 

额外优化提示

错误分支中可以省略runAgain = true,因为变量初始值就是true,循环会自动继续执行,减少冗余代码。

内容的提问来源于stack exchange,提问作者user

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 15:43:12