c# - 为什么我的 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);
解决方案
一旦IdCheck == true
进入无限循环。因为你永远不会改变IdCheck
你的if
陈述if(IdCheck == true)
。因此,您的最高级别do while
实际上是使循环无限。在某些时候,您需要根据您想要实现的目标将 IdCheck 更改为false
或删除它do while
推荐阅读
- node.js - 在 MacOS 上全局安装 Sequelize-cli 后找不到
- javascript - javascript 应用转换时父元素发生变化
- flask - Flask appbuilder如何替换注册表单?
- sql - 在 sql 中选择 end_date >= start_date 的行,每个 ID 重复多次
- c++ - 编译 sqlite 文档代码时出错
- node.js - NodeJS Express 中间件在没有 next() 的情况下转到下一个
- python - 如何检查班级?
- macos - Intellij 2018.3:导入设置 Mac?
- java - Kubernetes 和 Java:检索 Service 背后的 Pod IP
- java - Java - 添加多个长溢出/下溢检查