为什么在接受输入后在退出循环时不这样做

时间:2019-07-24 16:02:08

标签: c++ visual-c++ vector while-loop

挺直的。我不明白为什么它在不接受y字符后不会退出循环。

ive针对y char和n char尝试了==和!=的不同变体

vector<int> v;
    char ans;
    do
    {
        cout << "Enter scores, enter number outside of 0-100 to stop:\n";
        get_scores(v);
        print_stats(v);
        cout << "Do you want to try another set of scores? Y/N: \n";
        cin >> ans;
    } while (ans != ('n' || 'N'));

键入任何字符后,循环将继续要求更多输入。 注意:获取分数和打印统计信息功能可以按预期工作。

3 个答案:

答案 0 :(得分:4)

您在while条件下的比较不正确,您可能打算这样做

while (ans != 'n' && ans != 'N');

('n' || 'N')将被强制为true(1),因此您将检查值1的字符而不是'n' / 'N'

答案 1 :(得分:2)

    } while (ans != ('n' || 'N'));

在这里,您将char与||的布尔结果进行比较其他2个字符的操作。 哪个总是正确。 所以您的while声明很有效

    } while (ans != true);

要解决此问题,您需要将ans与n和N进行比较,如果其中一个变为真,则退出,例如:

    } while ((ans != 'n') && (ans != 'N'));

答案 2 :(得分:0)

while (ans != ('n' || 'N'))与编写while (ans != (true))相同。您可能想要while ((ans != 'n') && (ans != 'N'))