你能在if语句中使用2个或更多OR条件吗?

8 c++ conditional-statements

我在论坛上询问之前试图自己测试一下,但我测试这个的简单代码似乎不起作用.

#include <iostream>
using namespace std;

int main() {
cout << "Enter int: ";
int number;
cin >> number;
if (number==1||2||3) {
    cout << "Your number was 1, 2, or 3." << endl;
}
else if (number==4||5||6) {
    cout << "Your number was 4, 5, or 6." << endl;
}
else {
    cout << "Your number was above 6." << endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

它总是返回第一个条件.我的问题是,是否有可能超过2个OR条件?或者我的语法不正确?

Ted*_*opp 11

您需要将测试编码为不同的:

if (number==1 || number==2 || number==3) {
    cout << "Your number was 1, 2, or 3." << endl;
}
else if (number==4 || number==5 || number==6) {
    cout << "Your number was 4, 5, or 6." << endl;
}
else {
    cout << "Your number was above 6." << endl;
}
Run Code Online (Sandbox Code Playgroud)

你这样做的方式,第一个条件被解释为好像是这样写的

if ( (number == 1) || 2 || 3 ) {
Run Code Online (Sandbox Code Playgroud)

||如果左侧为真或左侧为假且右侧为真,则定义逻辑或运算符()以评估为真值.由于2是一个真值(按原样3),无论值是什么,表达式的计算结果为true number.

  • 你不在"||"周围放置空格吗?这有点难以阅读,你不觉得吗?:-) (2认同)