Два приведенных вами примера не совсем эквивалентны, поэтому сложно сказать, какой стиль лучше.Вот два подхода, которые немного больше похожи в том, что они делают:
for (Foo foo: foos) {
// ...
if (ok) { return foo; }
}
return null;
В сравнении:
Foo result = null;
for (Foo foo: foos) {
// ...
if (ok) {
result = foo;
break;
}
}
return result;
В этом случае я бы рекомендовал первый, потому что он намного проще.Вряд ли существует существенная разница в производительности.Некоторые люди предпочитают второе, потому что они хотят только одного возврата в каждой функции, но я не думаю, что всегда стоит придерживаться этого правила.Иногда множественные операторы возврата делают вещи намного понятнее.