首页 > 解决方案 > 为什么我的 do While 循环会导致无限循环?

问题描述

我有这段代码,它将根据用户输入的内容修改文本文件。检查choiceBack == 1 的do while 循环不会导致无限循环。但是,检查 idCheck 是否为真的循环会导致无限循环。为什么这样?

bool idCheck = customerList.Where(m => m.iID.Contains(cC.iID)).Any();

do
{
    if (idCheck == true)
    { 
        (Chunk of code)

        Console.Write("User updated!");
        int choiceBack2 = 0;
        do
        {
            Console.WriteLine();
            Console.WriteLine("1) Go Back");
            choiceBack2 = Convert.ToInt32(Console.ReadLine());


            if (choiceBack2 == 1)
            {
                baristaLoggedIn();
            }

            else
            {
                Console.WriteLine("Wrong option!");
            }
        } while (choiceBack2 != 1);
    }
    else
    {
        Console.Write("username doesn't exist ");
        Console.WriteLine();
        Console.Write("Enter ID: ");
    }
} while (idCheck != true);

标签: c#loopswhile-loop

解决方案


一旦IdCheck == true进入无限循环。因为你永远不会改变IdCheck你的if陈述if(IdCheck == true)。因此,您的最高级别do while实际上是使循环无限。在某些时候,您需要根据您想要实现的目标将 IdCheck 更改为false或删除它do while


推荐阅读