如何摆脱if-else语句混乱
本文关键字:混乱 语句 if-else 何摆脱 | 更新日期: 2023-09-27 17:56:11
if (Functioncall){}
else if (Functioncall){}
if (Functioncall){}
if (Functioncall){}
if (Functioncall){
if (Functioncall){
if (Functioncall){}
}
}
else {}
每个函数调用返回一个布尔值,并根据返回值执行一组语句。我试图摆脱似乎使代码混乱的 if-else 梯子。
我该怎么做?
您可以检查相反的条件并返回"早期"。这样,当您(或其他人)阅读代码时,您将拥有更干净的代码流,更少的缩进,并且可能会有更清晰的逻辑。
看看这些:
- https://softwareengineering.stackexchange.com/a/118757/33914
- https://softwareengineering.stackexchange.com/a/18473/33914
在您的情况下,它将类似于:
if (!Functioncall)
return;
if (!OtherFunctioncall)
return;
等。
根据代码的编写方式,嵌套if
可以编写为一个大if
if(Function1 && Function2 && Function3){
}else{}
如果您的代码是
if (Functioncall){
if (Functioncall){
if (Functioncall){
// the code
}
}
}
那么上面的代码是相同的。
您有一些选择:
- 开关大小写子句
- 使您的代码更好地模块化。分解为方法(也更容易看到重复的代码)
- 检查对面并立即返回。可能会帮助您解决嵌套的 ifs
看起来您的函数都返回了一个bool
。 返回是否true
意味着成功,false
意味着失败? 如果是这样,那么您应该更改要void
的函数,并在它们失败时抛出Exception
。 则调用代码不需要检查返回值。