[英]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
}
}
}
那么上面的代码是相同的。
您有一些选择:
看来您的函数都在返回bool
。 返回true
表示成功, false
表示失败吗? 如果是这样,则应将函数更改为void
并在失败时引发Exception
。 然后,调用代码无需检查返回值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.