Вклинюсь как сторонник одной точки выхода из функции :).
Александр, в вашем примере множественные возвраты оправданы, потому что там функции 10 строк и логика проста.
А когда функция чуток побольше и в ветках появляется дополнительная логика - становится сложнее дебажить.
Избегание многих уровней вложенности никак не противоречит единственному return-у.
Еще в https://refactoring.guru/ru/remove-control-flag само удаление управляющего флага в циклах благодаря использованию break/continue правильно, но вступление-обоснование в статье не про циклы а про функции и return-ы (и вашу точку зрения на это =) ).
Вообщем момент спорный и требует доп. обсуждения и примеров.
Вклинюсь как сторонник одной точки выхода из функции :).
Александр, в вашем примере множественные возвраты оправданы, потому что там функции 10 строк и логика проста.
А когда функция чуток побольше и в ветках появляется дополнительная логика - становится сложнее дебажить.
Избегание многих уровней вложенности никак не противоречит единственному return-у.
Еще в https://refactoring.guru/ru/remove-control-flag само удаление управляющего флага в циклах благодаря использованию break/continue правильно, но вступление-обоснование в статье не про циклы а про функции и return-ы (и вашу точку зрения на это =) ).
Вообщем момент спорный и требует доп. обсуждения и примеров.