if (Functioncall){}
else if (Functioncall){}
if (Functioncall){}
if (Functioncall){}
if (Functioncall){
if (Functioncall){
if (Functioncall){}
}
}
else {}
每个函数调用都返回一个布尔值,并根据返回值执行一组语句。 我正试图摆脱那些看似混乱代码的if-else梯子。
我该怎么办?
答案 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)
你有一些选择:
答案 3 :(得分:0)
看起来你的函数都返回bool
。返回true
是否成功,false
意味着失败?如果是,那么您应该将函数更改为void
并在失败时抛出Exception
。然后调用代码不需要检查返回值。