在if语句中使用!=运算符检查两个条件

时间:2019-01-15 09:15:38

标签: c++

char type;
std::cout << "Enter Type(s or c only)";
std::cin >> type;
if (type != 's' || 'c')
{
    std::cout << "NOT VALID";
}

如果用户输入sc以外的任何字符,我希望此代码显示“无效”,但是即使s或{{ 1}}。

为什么会这样?

1 个答案:

答案 0 :(得分:1)

代替这个

if(type!='s'||'c')

您需要这样做

if((type!='s') && (type!='c'))
  

为什么会发生这种情况,请回答。

type!='s'||'c'(type!='s')||'c',并且始终为true。您需要进行两次检查(先对's'进行检查,然后再对'c'进行检查),因此还需要进行两次比较,即您尝试过的类似化合物的构造无法正常工作。