有没有办法包含多个!=运算符?

时间:2019-05-14 17:55:26

标签: c++

我正在尝试使一个变量不等于整数或十进制数的输出无效的系统。问题是,当变量不等于第一个选项而不是两个选项时,它输出无效。有解决办法吗?

我尝试使它成为if语句以及else if语句,而不是用&&分隔它们。它没有用。

if (user_input != "whole number") {
    std::cout << "\nInvalid";
    goto label1;
  }
  else if (user_input != "decimal number") {
    std::cout << "\nInvalid";
    goto label1;
  }

如果输入了十进制数字,则输出无效。

2 个答案:

答案 0 :(得分:3)

您的要求是,如果变量不等于“整数”或“十进制数”,则系统应输出无效。

我们可以将其直接转换为代码。为了强调我如何翻译要求,我使用了andor,但是如果您以更常规的方式编写内容,并且将&&用于{{1} }和and代表||

or

或者,我们可以这样写:

if(user_input != "whole number" and user_input != "decimal number") 
{
    std::cout << "\nInvalid";
    goto label1;
}

答案 1 :(得分:1)

使用实际代码的可读方式:

bool invalid = ((typeid(var) != typeid(int)) && (typeid(var) != typeid(double)));
if(invalid)
    std::cout << "Invalid !" << std::endl;

希望有帮助。