c++ - 如何在一个 while 循环中获取多个条件?

标签 c++ conditional-statements comparison

我正在使用 while 循环,我希望用户输入 r、R、p 或 P。但是当我添加多个条件时,例如:

while ((userInput != "r") || (userInput != "p" || (userInput != "R") || (userInput!= "P")) {
    cout << "Please enter a valid option" << endl;
    cin >> userInput;
}

我的程序将永远陷入循环。好像我是这样输入的:

while (userInput != "r") {
    cout << "Please enter a valid option" << endl;
    cin >> userInput;
}

如果用户输入“r”,我的代码将退出 for 循环 那么为什么第一段代码不起作用呢?我没有错误,这意味着它必须是一个逻辑错误,但我不明白。如何在 for 循环中获得更多条件并使其工作?

最佳答案

您需要使用 && 而不是 || 因为使用 ||while 中的条件是总是 true。例如,当您写“r”时,条件 userinput != r 为假,但其余条件为真,使用 && 所有表达式都变为 falsewhile 结束。

关于c++ - 如何在一个 while 循环中获取多个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47402665/

相关文章:

vba - 比较 2 张纸中的数据并找出不匹配的地方

python-3.x - 如何根据条件(特定列的相同值)从其他数据框中复制值?

Redis选择有很多条件

c++ - 反汇编 Visual C++ 中我的函数及其参数的名称

c++ - C++0x lambda 的 undefined symbol ?

python - 包含多个条件的列表

ruby-on-rails - Rails、Padrino 和 Sinatra 构建预付费移动服务的适用性

comparison - 为什么有这么多方法来比较是否相等?

c++ - 在 MFC 应用程序中,将文件从一个目录复制到另一个目录的最简单方法是什么?

c++ - 如何从双指针数组创建 Eigen::VectorXd