0
if (Functioncall){}     
else if (Functioncall){}

if (Functioncall){}

if (Functioncall){}

if (Functioncall){ 
                 if (Functioncall){                       

                                  if (Functioncall){}

                                  }
                  }
else {}

每个函数调用都返回一个布尔值,并根据返回值执行一组语句。我正在尝试摆脱似乎使代码混乱的 if-else 阶梯。

我该怎么做?

4

4 回答 4

2

您可以检查相反的条件并“提前”返回。这样,当您(或其他人)阅读您的代码时,您将拥有更清晰的代码流、更少的缩进和更清晰的逻辑。

看看这些:

在您的情况下,它将类似于:

if (!Functioncall)
    return;

if (!OtherFunctioncall)
    return;

等等

于 2013-01-28T05:34:30.350 回答
2

根据您的代码的编写方式,嵌套if的 s 可以写成一个大的if

if(Function1 && Function2 && Function3){

}else{}

如果您的代码是

if (Functioncall){ 
    if (Functioncall){
        if (Functioncall){
            // the code
        }
    }
}

那么上面的代码是相同的。

于 2013-01-28T05:37:24.700 回答
1

你有一些选择:

  • 切换案例子句
  • 使您的代码更好地模块化。分解成方法(也更容易看到重复的代码)
  • 检查对面并立即返回。可能会帮助您处理嵌套 if
于 2013-01-28T05:37:22.897 回答
0

看起来您的函数都返回一个bool. 返回是否true意味着成功和false失败?如果是这样,那么您应该将函数更改为并在它们失败时void抛出一个。Exception那么调用代码就不需要检查返回值了。

于 2013-01-28T05:42:23.907 回答