还有多个if

时间:2017-03-25 13:48:04

标签: c++

是否可以在不使用bool变量的情况下为所有这些设置多个if和其他一个?我正在谈论像这样的事情:

bool triggered = 0;

if (condition)
{
    //code
    triggered = 1;
}
if (condion2)
{
    //code
    triggered = 1;
}
if (!triggered)
{
    //code
}

因此,如果这些都没有发生 - 会发生一些事情。在伪代码中,我会这样写:

{
   if()
   {

   }
   if()
   {

   }
}
else
{

}

是否有可能做出类似的事情?

1 个答案:

答案 0 :(得分:3)

不,你不能这样做。你可以这样做:

if (condition1 || condition2) {
    if (condition1) {
        //code
    }
    if (condition2) {
        //code
    }
} else {
    // code
}

但这意味着您必须两次测试condition1condition2。如果有很多条件,第一个if会很长。

我发现您的代码更适合triggered变量。通常,已经有一个服务于此目的的变量。例如,表单验证代码通常看起来像这样:

std::string errors;
if (field1 is invalid) {
    errors += "Field1 is invalid\n";
}
if (field2 is invalid) {
    errors += "Field 2 is invalid\n";
}
if (errors == "") {
    // process the form
} else {
    // display error message
}