否则对于多个如果

Else for multiple if's

本文关键字:如果 于多个      更新时间:2023-10-16

是否可以在不使用 bool 变量的情况下为所有这些创建多个 if 和另一个?我说的是这样工作的东西:

bool triggered = 0;
if (condition)
{
    //code
    triggered = 1;
}
if (condion2)
{
    //code
    triggered = 1;
}
if (!triggered)
{
    //code
}
因此,如果

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

{
   if()
   {
   }
   if()
   {
   }
}
else
{
}

有没有可能做类似的东西?

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

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

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

我发现带有triggered变量的代码更可取。通常,已经有一个变量可以达到目的。例如,表单验证代码通常如下所示:

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