繁体   English   中英

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

[英]How to get rid of if-else statement clutter?

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

if (Functioncall){}

if (Functioncall){}

if (Functioncall){ 
                 if (Functioncall){                       

                                  if (Functioncall){}

                                  }
                  }
else {}

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

我该怎么办?

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

看看这些:

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

if (!Functioncall)
    return;

if (!OtherFunctioncall)
    return;

等等

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

if(Function1 && Function2 && Function3){

}else{}

如果您的代码是

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

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

您有一些选择:

  • 的switch-case从句
  • 使您的代码更好地模块化。 细分为方法(也更容易看到重复的代码)
  • 检查是否相反,并立即返回。 可能会帮助您解决嵌套ifs

看来您的函数都在返回bool 返回true表示成功, false表示失败吗? 如果是这样,则应将函数更改为void并在失败时引发Exception 然后,调用代码无需检查返回值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM