我想知道哪个函数更好(在我的情况下是一个java方法,但我认为它适用于更多语言):包括几个return语句的嵌套ifs,或者没有多个return语句的嵌套ifs?
为了简洁起见,我将使用一个简单的例子;但是,我问的是两个选项的一般和更长的情况。
if(condition1) {
if(condition2) {
return condition3;
}
}
return false;
或者这个:
if(!condition1)
return false;
if(!condition2)
return false;
return condition3;
答案 0 :(得分: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;
此外,如果我发现后者开始在更长的函数中形成,那么我会将该代码放在一个新函数中,这样我就可以使用“常常返回”样式。
答案 1 :(得分:0)
当您开始使用更高阶的交换机时,第一种方法通常会更好。
想象一下,如果检查n-1条件与失败条件k(1
如果您正在为1000个条件解析数据库而在条件15上失败,那么您将进行大量“无用”计算,只是为了通过示例实现我的符号。