我有这段代码将根据用户输入的内容修改文本文件。正在检查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);
答案 0 :(得分:2)
一旦IdCheck == true
,它将进入无限循环。因为您从不会在IdCheck
语句if
中更改if(IdCheck == true)
。因此,您最高级别的do while
实际上使循环无限。有时,您需要根据要实现的目的将IdCheck更改为false
或删除do while
答案 1 :(得分:0)
为什么以下循环会最终运行?
var idCheck = false;
do
{
} while (!idCheck)
你现在看到了吗?
答案 2 :(得分:0)
您需要在else语句-“错误的选项”中中断循环。您可以通过在else语句中放入“ idCheck = false”来破坏它。