如果逻辑未按预期工作

时间:2018-08-09 01:22:09

标签: c++

我正在尝试在if语句逻辑中使用char变量,但它没有按我期望的那样工作。

int main()
{
char a = 'a';
//char array[] = "testing";
if(a=='i'||'b')
{
    cout << "GOOD" << endl << a << endl;
}
else
{
    cout << "Invalid Char" << endl << a << endl;
}
system("PAUSE");
return 0;
}

我希望它能输出

Invalid Char
a

但是它输出

GOOD
a

帮助?

2 个答案:

答案 0 :(得分:2)

您在if语句中的比较不正确。编译器看到以下内容

if(a=='i'||'b')

看到:

  1. a是否等于'i'
  2. 'b'是真的吗?

第二部分始终为true(因为'b'必须与NUL字符'\0'不同)。您需要做的是

if (a == 'i' || a == 'b')

答案 1 :(得分:0)

要解决您的问题,

if(a=='i' || a=='b')