Java 分支语句:在for/while循环中最好是中断还是返回?
显然,只有在方法可以立即退出的情况下才使用returnJava 分支语句:在for/while循环中最好是中断还是返回?,java,branch,cycle,Java,Branch,Cycle,显然,只有在方法可以立即退出的情况下才使用return for (...) { return; } 或 哪一个更好?你给出的两个例子并不完全相同,所以很难说哪一个更好。以下两种方法的作用稍有相似: for (Foo foo: foos) { // ... if (ok) { return foo; } } return null; 与: Foo result = null; for (Foo foo: foos) { // ... if (ok
for (...) {
return;
}
或
哪一个更好?你给出的两个例子并不完全相同,所以很难说哪一个更好。以下两种方法的作用稍有相似:
for (Foo foo: foos) {
// ...
if (ok) { return foo; }
}
return null;
与:
Foo result = null;
for (Foo foo: foos) {
// ...
if (ok) {
result = foo;
break;
}
}
return result;
在这种情况下,我推荐第一种,因为它更简单。不太可能存在显著的性能差异。有些人更喜欢第二个,因为他们只希望每个函数都有一个返回,但我认为坚持这个规则并不总是一个好主意。有时,多个返回语句会让事情变得更清楚。我宁愿建议使用中断方法。它看起来像更多的代码,但更容易理解。而且,以后进行更改更容易。为了清晰起见,您可以选择带标签的循环 显然,只有在方法可以立即退出的情况下,才能使用
返回
for (...) {
return;
}
你已经回答了你自己的问题。这两种方法具有不同的语义,不能真正互换,return
变量仅适用于更具体的场景
…因此,正是在这些特定场景中,您应该使用return
变量。其意图是显而易见的,因此有助于提高可读性。如果在return
足够时使用break
,那么读者必须花更多的时间来了解break
之后会发生什么。当没有重大事件发生时,返回
会很快更清楚地传达这一点。相关:中断和返回有不同的行为,所以问哪个“更好”并没有真正的答案