В чем разница между for и forEach в Kotlin

«В чем разница между for и forEach в Kotlin» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

for — это цикл, работающий с диапазонами (1..10), коллекциями или массивами. Он позволяет использовать break и continue.

forEach — это функция-расширение для итеративных типов (коллекции, массивы). Внутри лямбды нельзя использовать break/continue, но можно return@forEach для пропуска элемента.

Пример:

// for
for (i in 1..3) {
    if (i == 2) continue
    print(i) // 1, 3
}

// forEach
listOf(1, 2, 3).forEach {
    if (it == 2) return@forEach
    print(it) // 1, 3
}

Ключевое отличие: for — конструкция языка, forEach — функция с лямбдой.