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

C# While循环中布尔值控制扫描逻辑失效问题求助

修复C# AntivirusScan程序的逻辑错误

我帮你排查了代码里的几个关键逻辑问题,这些问题直接导致了输出和预期不符:

问题分析

  1. 独立if语句引发多分支误触发:你的代码里所有条件都是独立的if判断,而非互斥的else if。比如当hideMode为true时输入scan,程序会先执行scan的扫描计数逻辑,再执行hideMode == true的提示,这就出现了不该有的扫描输出。
  2. unhide操作错误触发扫描:输入unhide时,你的代码直接执行了扫描计数和输出,但预期是unhide仅恢复扫描权限,下次输入scan才开始扫描。
  3. 重复的提示输出:输入hide时你既输出了提示又设置了hideMode,之后每次循环只要hideMode为true都会重复输出提示,造成冗余内容。

修复后的代码

class AntivirusScan 
{ 
    static void Main(string[] args) 
    { 
        int fileIndex = 0; 
        bool hideMode = false; 
        bool heDoesntKnow = true; 

        while (heDoesntKnow) 
        { 
            string answer = Console.ReadLine(); 

            if (answer == "game over") 
            { 
                Console.WriteLine($"run"); 
                heDoesntKnow = false; 
            }
            else if (hideMode)
            {
                // 隐藏模式下,仅处理unhide和非法操作提示
                if (answer == "unhide")
                {
                    hideMode = false;
                }
                else
                {
                    Console.WriteLine($"can't scan files for viruses");
                }
            }
            else
            {
                // 非隐藏模式下处理scan和hide
                if (answer == "scan") 
                { 
                    fileIndex++; 
                    Console.WriteLine($"scanning file {fileIndex}"); 
                } 
                else if (answer == "hide") 
                { 
                    Console.WriteLine($"can't scan files for viruses"); 
                    hideMode = true; 
                }
            }
        } 
    } 
}

验证预期输出

当输入序列scan scan hide scan scan unhide scan game over时,输出会和预期完全一致:

scanning file 1
scanning file 2
can't scan files for viruses
can't scan files for viruses
scanning file 3
run

核心改进点:

  • 用嵌套条件区分隐藏模式和非隐藏模式,保证同一时间只有一个逻辑分支执行
  • 隐藏模式下,只有unhide能切换状态,其他操作(包括scan)都只输出提示,不执行扫描
  • unhide操作仅切换状态,不触发扫描,符合预期逻辑
  • 移除了重复的提示输出逻辑,避免冗余内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:18:28