陷入Infinite While Loop,该怎么做

时间:2015-09-11 19:17:49

标签: c++ loops while-loop infinite

这不接受任何答案:

cout << "Restart yes or no: ";
cin >> retry;
while (retry != "yes" or retry != "no"){
    cout << "Restart yes or no: ";
    cin >> retry;
    system("cls");
}

如果有人可以提供替代/修复,我们将不胜感激。

2 个答案:

答案 0 :(得分:6)

每个字符串都不同于classtemplate<template<typename, typename> class>。只要字符串与 "yes""no"不同,您就意味着循环 - 这意味着使用逻辑“和”运算符,而不是“或”运算符:< / p>

"yes"

答案 1 :(得分:4)

您的代码有retry != yes or retry != no。这种情况是重言式,因此总是评估为真。

将您的代码编辑为:

cout << "Restart yes or no: ";
cin >> retry;
while (retry != "no"){
    cout << "Restart yes or no: ";
    cin >> retry;
    system("cls");
}

如果您打算循环直到收到yesno,那么while循环应该运行,直到输入的字符串不等于任何一个。您打算使用逻辑AND代替OR。代码应为:

while (retry != "yes" && retry != "no"){