显然只有在方法可以立即退出的情况下返回
for (...) {
return;
}
或
for () {
break;
}
哪个更好?
答案 0 :(得分:3)
你给出的两个例子并不完全等同,所以说哪个是更好的风格有点难。以下是两种方法,它们的作用略微相似:
for (Foo foo: foos) {
// ...
if (ok) { return foo; }
}
return null;
对战:
Foo result = null;
for (Foo foo: foos) {
// ...
if (ok) {
result = foo;
break;
}
}
return result;
在这种情况下,我会推荐第一个,因为它更简单。不太可能存在显着的性能差异。有些人更喜欢第二种,因为他们只想在每个功能中获得一次回报,但我认为坚持这一规则并不总是一个好主意。有时多个返回语句会使事情变得更加清晰。
答案 1 :(得分:0)
我宁愿建议突破方法。它看起来像更多的代码,但更容易理解。此外,稍后进行更改也更容易。为清晰起见,您可以使用带标签的循环。
答案 2 :(得分:0)
显然仅在方法可以立即退出
的情况下使用return
你已经回答了自己的问题。这两个语义具有不同的语义,并且实际上不可互换,return
变体仅适用于更具体的场景......
...因此正是在那些特定场景中您应该使用return
变体。目的很明显,因此它具有更好的可读性。如果您在break
足够时使用return
,则读者必须花费更多时间来弄清break
之后发生的事情。当没有任何重大事件发生时,return
会很快传达出来。