【问题标题】:Using != operator in the if statement to check two conditions [duplicate]在 if 语句中使用 != 运算符来检查两个条件
【发布时间】:2019-01-15 09:15:38
【问题描述】:
char type;
std::cout << "Enter Type(s or c only)";
std::cin >> type;
if (type != 's' || 'c')
{
    std::cout << "NOT VALID";
}

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

为什么会这样?

【问题讨论】:

  • C++ 中的运算符不能正常工作,即使是远程工作,正如您所期望的那样。如果您想检查type 既不是's' 也不是'c',请使用if (type != 's' &amp;&amp; type != 'c')

标签: c++ or-operator


【解决方案1】:

不是这个

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

你需要这样做

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

为什么会这样,请回答。

type!='s'||'c'(type!='s')||'c',并且始终是 true。您进行了两次检查(您先对照's' 进行检查,然后对照'c' 进行检查),因此您还需要进行两次比较,您尝试的类似化合物的构造不能那样工作。

【讨论】:

    猜你喜欢
    • 2011-02-18
    • 2011-05-15
    • 2014-10-13
    • 2012-12-30
    • 2020-12-10
    • 2014-04-03
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    相关资源
    最近更新 更多