如何摆脱if-else语句的混乱?

时间:2013-01-28 05:32:32

标签: c#

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

if (Functioncall){}

if (Functioncall){}

if (Functioncall){ 
                 if (Functioncall){                       

                                  if (Functioncall){}

                                  }
                  }
else {}

每个函数调用都返回一个布尔值,并根据返回值执行一组语句。 我正试图摆脱那些看似混乱代码的if-else梯子。

我该怎么办?

4 个答案:

答案 0 :(得分:2)

您可以检查相反的条件并返回“早期”。这样,当您(或其他人)读取您的代码时,您将获得更清晰的代码流,更少的缩进,并且可能有更清晰的逻辑。

看看这些:

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

if (!Functioncall)
    return;

if (!OtherFunctioncall)
    return;

答案 1 :(得分:2)

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

if(Function1 && Function2 && Function3){

}else{}

如果您的代码是

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

然后上面的代码是相同的。

答案 2 :(得分:1)

你有一些选择:

  • 开关壳体子句
  • 让您的代码更好地模块化。突破方法(更容易看到重复的代码)
  • 检查对面并立即返回。可能会帮助您使用嵌套ifs

答案 3 :(得分:0)

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