为什么while循环被跳过了
Why is my while loop getting skipped?
程序跳过while循环并结束。超级令人沮丧。我甚至在while循环之前将AnsCheck的值设置为false。没有运气。程序不执行While循环中的任何操作。以下是相关代码:
bool AnsCheck;
AnsCheck = false;
while (AnsCheck = false)
{
getline(cin, Ans1);
if (Ans1 != "T" || Ans1 != "F")
{
cout << "Please Enter T for true or F for False" << endl;
cout << "answerswer not T or not F" << endl; // debugging
}
else
{
AnsCheck = true;
cout << "changed bool to true" << endl;
}
}
您需要使用比较运算符==
来代替赋值运算符=
。
while (AnsCheck == false) {
// ...
}
同样,正如你在这个答案下面的评论中提到的,if语句中的条件永远不会被评估为真。为了比较字符串,你应该使用strcmp
,当两个c字符串的内容相等时,它返回0。
if (strcmp(Ans1, "T") != 0 && strcmp(Ans1, "F") != 0) {
// ...
}
(AnsCheck = false)
您需要以另一种顺序编写这个比较,以便编译器可以生成一个错误。
(false = AnsCheck)
这是一个很难学习的过渡。检查你的编码标准
就像其他人已经说过的那样,使用比较操作符"=="而不是告诉编译器您正在使用"="进行赋值,您应该没问题。
改变:
while (AnsCheck = false)
:
while (AnsCheck == false)
希望这有帮助。干杯!
相关文章:
- 使用 std::istream_iterator 时,它似乎跳过了空文件行 - 如果可能的话,如何避免这种情况?
- 跳过整个循环而不运行 while
- 为什么我的程序跳过 while 循环? 2 大于 -1
- C++ For Loop在过程中被跳过了.如何解决?
- C++跳过了辛线
- C是否优化了循环的检查部分
- 如何在我的代码中修复无穷循环?我认为它跳过了第二个CIN,因此它一直在循环
- QT Qtimeline跳过了第一个框架
- 输入后,我的程序似乎跳过了第一个IF语句,直接转到ELSE
- C RLE BMP压缩跳过了最后一个字节
- 是否有理由跳过for循环的初始化
- 尝试对字符串数组进行排序,但我似乎陷入了循环
- 提升单元测试似乎跳过了应执行的代码
- C 将数据读取到一个结构,但它跳过了我的一个获取线,使该元素空白
- 为什么我的程序跳过了一个步骤
- 当我采用测试用例数 = 1 时,我的程序终止.其他明智的是,它给出了正确的答案,但跳过了最后一个测试用例
- 跳过for循环的特定(指定)迭代
- 为什么我的代码跳过了这个循环
- 请解释:在 for 循环之后跳过了行
- 为什么while循环被跳过了