Language agnostic 嵌套的;如果;s或更多“;return";声明?
我想知道函数中哪一个更好(在我的例子中是java方法,但我假设它适用于更多语言):包括带有少量返回语句的嵌套ifs,还是没有带有许多返回语句的嵌套ifs 为了简洁起见,我将使用一个简单的示例;然而,我想问的是关于这两种选择的一般和长期案例Language agnostic 嵌套的;如果;s或更多“;return";声明?,language-agnostic,coding-style,conventions,Language Agnostic,Coding Style,Conventions,我想知道函数中哪一个更好(在我的例子中是java方法,但我假设它适用于更多语言):包括带有少量返回语句的嵌套ifs,还是没有带有许多返回语句的嵌套ifs 为了简洁起见,我将使用一个简单的示例;然而,我想问的是关于这两种选择的一般和长期案例 if(condition1) { if(condition2) { return condition3; } } return false; 或者这个: if(!condition1) return false
if(condition1) {
if(condition2) {
return condition3;
}
}
return false;
或者这个:
if(!condition1)
return false;
if(!condition2)
return false;
return condition3;
当您开始使用更高阶的开关时,第一种方法通常会更好 想象一下,您的CPU正在运行一个简单的if检查,检查n-1条件与失败条件k(1 如果你正在解析一个数据库中的1000个条件,但在条件15中失败,那么你将面临大量“无用”计算,只是为了用一个例子来实现我的表示法。我更喜欢“经常返回”方法,尤其是对于复杂的条件检查函数。对我来说,这看起来更清楚:
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”风格。或者只有一行:
返回条件1&&condition2&&condition3;
我更喜欢返回语句。但我认为这确实是一个品味问题。可能的重复建议的解决方案之间没有语义上的差异。它们只在语法上不同。