Ответ
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 — функция с лямбдой.