do while 循环忽略我的布尔标志变量 C++
do while loop ignores my bool flag variable c++
If userList[i].用户查核(用户名,密码(返回false,然后它输入else条件,我得到输出"用户不存在!再试一次输入用户名和密码"那行然后卡在一个无限循环中,我不知道为什么,我的意思是程序再次重新进入do-while循环,所以我看不到循环如何延续?
int main()
{
LoadUsersFromDatabase();
bool flag;
string username;
int password;
do{
cout << "Enter username and password: ";
cin >> username >> password;
for (int i = 0; i < numOfUsers; i++)
if (userList[i].CheckUser(username, password) == true)
{
if (userList[i].GetUserType() == 'A')
{
ProcessAssistantMenu();
}
else if (userList[i].GetUserType() == 'M')
{
ProcessManagerMenu();
}
}
else
cout << "rUser Does Not Exist! Try Again! ";
flag = false;
} while(flag == false);
return 0;
}
你总是在设置你的flag = false
。
我猜你想这样做:
else{
cout << "rUser Does Not Exist! Try Again! ";
flag = false;
}
正如亚历克斯指出的那样,你一开始就没有把它设置true
。
该标志永远不会在循环中true
设置。
相关文章:
- 一个关于在C++中重载布尔运算符的问题
- 提升精神:解析布尔表达式并简化为规范范式
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 线程之间的布尔停止信号
- 布尔比较运算符是如何在C++中工作的
- 变量定义到C++布尔值转换
- 如何确保在使用基于布尔值的两个方法之一调用方法时避免分支预测错误
- 隐式常量/非常量运算符布尔
- 如何编写一个使用n倍三元条件语句的C++布尔函数
- do while 循环忽略我的布尔标志变量 C++
- 布尔标志与未签名的字符标志
- Python:我们应该如何编写一个函数来返回对象/列表和布尔标志
- 基于布尔标志有效地派生公共函数的两个版本
- 在命令行程序中使用布尔值。找不到定义标志并检查它们是否在参数中的方法
- 是否存在简单的指向布尔值作为线程取消标志的现实情况,无法有效地取消线程?
- 布尔标志应该始终是原子的
- 如何在无符号int上使用位标志,以便在其中存储额外的布尔值
- 为什么在成功将布尔字符串值转换为布尔值时,istringstream eof 标志没有变为真?
- 标准的原子布尔值和原子标志之间的区别
- 布尔标志重置