C# 为什么我的do While循环会导致无限循环?

C# 为什么我的do While循环会导致无限循环?,c#,loops,while-loop,C#,Loops,While Loop,我有这段代码,它将根据用户输入的内容修改文本文件。检查choiceBack==1的do while循环不会导致无限循环。但是,检查idCheck是否为true的循环会导致无限循环。为什么会这样 bool idCheck = customerList.Where(m => m.iID.Contains(cC.iID)).Any(); do { if (idCheck == true) { (Chunk of code) Console.W

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

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);

为什么下面的循环运行不正常

var idCheck = false;

do
{
} while (!idCheck)

你现在看到了吗?

一旦
IdCheck==true
它就会进入无限循环。因为您从未在
if
语句
if(IdCheck==true)
中更改
IdCheck
。所以您的最高级别
do-while
实际上是使循环无限。在某些情况下,您需要将IdCheck更改为
false
或删除
do while
,具体取决于您想要实现的目标。您需要打破else语句中的循环-“错误选项”。您可以通过在else语句中添加“idCheck=false”来打破它。

因为
idCheck
在循环期间不会更改它的值。它在循环之前设置,如果值为
false
,则将以无限循环结束。看起来您可以在
输入ID:
行之后再放第一行。我知道您在说什么,但我不知道如何修复它。。我知道这是个蹩脚的错误,但花几个小时在这项任务上会让你很累,注意力不集中。。