return или break для выхода из цикла?

202
11 апреля 2022, 23:20

Допустим у нас есть код вида:

while (true){
    ...
    if (...){
    return; // or break?
    }
}

Как правильно выйти из цикла, return или break?

Answer 1

Все зависит от того, что вам надо. Если вам надо выйти полностью из метода, то тогда return, а если только из цикла - то break.

Примеры.

Тут стоит использовать return, т.к. после цикла нет ничего + надо вернуть какое-либо значение

while(true) {
    ....
    if (...) {
        return "someReturnValue"
    }
}

А тут стоит использовать break, т.к. после цикла идет какая-то логика - в цикле мы ждем, пока наш объект не прогрузиться, и после этого уже получаем объект и работаем с ним

while(true)
    if (myObjectIsLoad()) {
        break;
    }
}
var myObject = getMyObject(); 
....
Answer 2

Синтаксически оба подхода выход через return/break равнозначны.

Однако, с точки зрения читабельности кода, все таки предпочтителен break, поскольку выход из функции во многих местах затрудняет понимание логики функции.

READ ALSO
Данные с другой стены сообщества VK (VK API, JSON, Retrofit, JAVA)

Данные с другой стены сообщества VK (VK API, JSON, Retrofit, JAVA)

Делаю Api запрос на получение постов тестовой группы VK (все по докам Вконтакте):

173
index.php не открывается

index.php не открывается

Уже неделю не могу справиться с проблемой на своем сайте (захожу по IP, так как домен еще не привязал)При введении IP в адресную строку происходит...

90
Как удалить @ из всех слов кроме email-адресов Regex

Как удалить @ из всех слов кроме email-адресов Regex

Подскажите пожалуйста, как удалить @ во всех словах в строке?

231
Ошибка при авторизации в symfony

Ошибка при авторизации в symfony

С помощью команды make:auth создал авторизациюЗаполнил таблицу пользователями

155