Avatar ·

Como usar break e continue dentro de forEach no Kotlin?

Olá a todos! Comecei a estudar Kotlin e me deparei com um problema inesperado. Quando escrevo um loop `for` normal, posso usar `break` e `continue` tranquilamente:\n\n```kotlin\nfor (i in 1..10) {\n if (i == 5) break\n if (i % 2 == 0) continue\n println(i)\n}\n```\n\nMas quando tento fazer o mesmo dentro de `forEach`:\n\n```kotlin\nval numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)\nnumbers.forEach { i ->\n if (i == 5) break // Erro de compilação!\n if (i % 2 == 0) continue // Também erro!\n println(i)\n}\n```\n\nO compilador dá o erro: "break and continue are only allowed inside a loop". Eu entendo que `forEach` não é um loop, mas uma função de ordem superior que recebe uma lambda. Mas preciso de alguma forma interromper a execução ou pular uma iteração. Digam-me como fazer isso.