if( condition ) {
some_code;
return value;
}
else if( condition ) {
some_code;
return value;
}
else if( condition ) {
some_code;
return value;
}
else {
some_code;
return value;
}
或
if( condition ) {
some_code;
return value;
}
if( condition ) {
some_code;
return value;
}
if( condition ) {
some_code;
return value;
}
some_code;
return value;
对你的想法感兴趣
Thnx!
答案 0 :(得分:16)
在性能方面没有区别。选择最易读的选项,可以取决于代码的作用。
一般不要担心这些微观优化。只有在您确定存在需要修复的性能问题后才能进行优化。
“我们应该忘记效率低下,大约97%的时间说:premature optimization是所有邪恶的根源。” -Donald Knuth
答案 1 :(得分:1)
如果这是一个没有返回值的函数,那么你给出的if ... else示例不需要return
。在这种情况下,if ... else将更容易阅读。
此外,if ... else应该是首选,因为它明确表明这些情况是互斥的。
如果这里存在性能差异,那么你的编译器/解释器很糟糕。
答案 2 :(得分:0)
我确信单个if
会更好,因为无论何时遇到真正的条件,它都可以安全地跳过其他else
替代方案,因为它们不会被执行。如果您使用多个if
s,则无论如何都必须评估所有后续条件(即使我认为您假设它们是相互排斥的。)
答案 3 :(得分:0)
取决于具体情况。
如果条件互斥,请使用else
。这将导致Java在发现真实的条件之后不检查任何条件。
如果它们不相互排斥,那么使用if
列表而不会导致多个案例发生。
在你的情况下,每个回报中的表现都是相同的,因为无论如何都需要进行相同数量的比较。
答案 4 :(得分:0)
我不担心这里的性能与代码可读性和可维护性一样多。如前所述,编译代码后性能基本相同。
我更倾向于更清楚地了解我的情况,而不是允许行为隐含地“堕落”。
此外,单个if不会比if else更快地进行评估。如果情况属实,则永远不会检查else路径。