В Kotlin и Java стандартный метод forEach не поддерживает досрочный выход из цикла через break или return из лямбды, так как это функция высшего порядка.
Можно ли досрочно остановить цикл forEach внутри его тела?
В Kotlin и Java стандартный метод forEach не поддерживает досрочный выход из цикла через break или return из лямбды, так как это функция высшего порядка.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Kotlin и Java стандартный метод forEach не поддерживает досрочный выход из цикла через break или return из лямбды, так как это функция высшего порядка.
Если нужно прервать выполнение цикла досрочно, лучше использовать классический цикл for или for с индексами:
for (item in collection) {
if (someCondition(item)) {
break // досрочно выйти из цикла
}
// обработка item
}
Или использовать forEach с исключением, но это не рекомендуется из-за снижения читаемости.
Таким образом, досрочно остановить forEach внутри его тела напрямую нельзя.