C++ 有没有办法包含多个!=接线员?
我试图使一个系统在变量不等于整数或十进制数时输出无效。问题是,当变量不等于第一个选项而不是两个选项时,它的输出无效。有解决办法吗 我已经尝试将其作为if语句和else-if语句,而不是用&&分隔它们。它不起作用C++ 有没有办法包含多个!=接线员?,c++,C++,我试图使一个系统在变量不等于整数或十进制数时输出无效。问题是,当变量不等于第一个选项而不是两个选项时,它的输出无效。有解决办法吗 我已经尝试将其作为if语句和else-if语句,而不是用&&分隔它们。它不起作用 if (user_input != "whole number") { std::cout << "\nInvalid"; goto label1; } else if (user_input != "decimal number") { st
if (user_input != "whole number") {
std::cout << "\nInvalid";
goto label1;
}
else if (user_input != "decimal number") {
std::cout << "\nInvalid";
goto label1;
}
if(用户输入!=“整数”){
std::cout您的要求是,如果变量不等于“整数”或“十进制数”,则系统应输出无效
我们可以直接将其转换为代码。为了强调我是如何翻译需求的,我使用了和和或,但是如果您以更传统的方式编写东西,则代码将是相同的,使用和和以及或和|
if(user_input != "whole number" and user_input != "decimal number")
{
std::cout << "\nInvalid";
goto label1;
}
if(用户输入!=“整数”和用户输入!=“小数”)
{
std::cout一种可读的方法,使用真实代码:
bool invalid = ((typeid(var) != typeid(int)) && (typeid(var) != typeid(double)));
if(invalid)
std::cout << "Invalid !" << std::endl;
bool invalid=((typeid(var)!=typeid(int))和&(typeid(var)!=typeid(double));
如果(无效)
std::您是否需要一个复合条件语句?将两个条件用| |连接在一个if语句中,表示或。通常,使用goto语句是一种不好的做法,因为它会使代码很难遵循您有多个goto的逻辑。请尝试在没有它们的情况下编写代码。我对您的答案投了赞成票,因为它是正确的,但我想你可能想提一下,通常写或
的方法是|
,而写和
的方法是&&
。使用没有错-只是“不常见”。太棒了!我很高兴能帮上忙!
bool invalid = ((typeid(var) != typeid(int)) && (typeid(var) != typeid(double)));
if(invalid)
std::cout << "Invalid !" << std::endl;