提问人:Bitx 提问时间:11/21/2013 更新时间:11/21/2013 访问量:166
嵌套的“if”或多个“return”语句?[关闭]
nested "if"s or more "return" statements? [closed]
问:
我想知道哪个在函数中更好(在我的情况下是 java 方法,但我认为它适用于更多语言):包括具有很少 return 语句的嵌套 if,或者没有具有许多 return 语句的嵌套 if?
为了简洁起见,我将使用一个简单的例子;但是,我问的是这两种选择的一般和更长的案例。
if(condition1) {
if(condition2) {
return condition3;
}
}
return false;
或者这个:
if(!condition1)
return false;
if(!condition2)
return false;
return condition3;
答:
0赞
Josh
11/21/2013
#1
当您开始使用更高阶的开关时,第一种方法通常更好。
想象一下,您的 CPU 运行了一个简单的 if 检查 n-1 条件与失败条件 k (1
如果你正在解析一个数据库的 1000 个条件,但在条件 15 上失败了,那么你就会进行很多“无用”的计算,只是为了通过一个例子来实现我的表示法。
评论
0赞
Nikolai Ruhe
11/21/2013
建议的解决方案之间没有语义上的区别。它们仅在语法上有所不同。
2赞
Claudiu
11/21/2013
#2
我更喜欢“经常返回”方法,特别是对于复杂的条件检查功能。对我来说,这看起来更清楚:
if (foob || bar) {
return "morgan";
}
if (!glorb) {
return "noglorb";
}
if (argutan) {
return "gahx!";
}
return "nurb";
甚至:
if (foob || bar) {
res = "morgan"
}
else {
if (!glorb) {
res = "noglorb";
}
else {
if (argutan) {
res = "gahx!";
}
res = "nurb";
}
}
return res;
此外,如果我发现类似后者的东西开始在较长的函数中形成,那么我会将该代码放入一个新函数中,以便我可以使用“经常返回”样式。
上一个:呼叫层次结构的最大深度
评论
return condition1 && condition2 && condition3;