首页 > 解决方案 > 在 if 语句中使用 != 运算符来检查两个条件

问题描述

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

s如果用户输入除or以外的任何字符,我希望此代码显示“无效” c,但即使输入 or ,它也会显示“无效sc

为什么会这样?

标签: c++or-operator

解决方案


而不是这个

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

你需要这样做

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

为什么会这样,请回答。

type!='s'||'c'(type!='s')||'c',而且总是如此true。你做了两次检查(你检查它's'然后反对'c'),所以你还需要两次比较,你尝试过的类似化合物的构造不能那样工作。


推荐阅读