break, continue y retornos etiquetados
Controle el flujo de los bucles con break/continue y salga de bucles anidados mediante etiquetas.
break, continue y retornos etiquetados es una lección gratuita de Kotlin Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kotlin Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Academy incluye 4 lecciones en total.
Control del flujo de los bucles
Kotlin admite break (salir del bucle), continue (saltar a la siguiente iteración) y etiquetas para salir de bucles anidados.
Conceptos básicos de break
break sale inmediatamente del bucle envolvente más interno.
fun main() {
for (i in 1..10) {
if (i == 5) break
print("$i ")
}
println() // 1 2 3 4
}Conceptos básicos de continue
continue omite el resto de la iteración actual y pasa a la siguiente.
fun main() {
for (i in 1..10) {
if (i % 2 == 0) continue
print("$i ")
}
println() // 1 3 5 7 9
}Bucles etiquetados
Etiquete un bucle con label@ y haga referencia a él desde break@label o continue@label para controlar bucles externos desde el interior de bucles anidados.
fun main() {
outer@ for (i in 1..3) {
for (j in 1..3) {
if (i == 2 && j == 2) break@outer
println("$i,$j")
}
}
}continue con una etiqueta
Use continue@outer para pasar a la siguiente iteración de un bucle externo.
fun main() {
outer@ for (i in 1..3) {
for (j in 1..3) {
if (j == 2) continue@outer
println("i=$i j=$j")
}
}
}return@lambda
Dentro de forEach y de otras funciones inline, un return simple sale de la función envolvente. Use return@forEach para salir únicamente de la lambda.
fun main() {
listOf(1, 2, 3, 4, 5).forEach {
if (it == 3) return@forEach
println(it)
}
println("Done")
}Retorno no local en lambdas
Si la lambda es inline (como forEach), un return simple sale de toda la función envolvente, lo que a veces resulta inesperado.
fun process() {
listOf(1, 2, 3).forEach {
if (it == 2) return // exits process()
println(it)
}
println("never printed")
}
fun main() { process() }Etiqueta personalizada en una lambda
Puede etiquetar una lambda explícitamente con name@ para indicar con mayor claridad el destino del retorno.
fun main() {
listOf(1, 2, 3, 4).forEach loop@{
if (it == 3) return@loop
println(it)
}
}break en while
break y continue funcionan igual en while y do-while.
fun main() {
var i = 0
while (true) {
if (i >= 3) break
println("i = $i")
i++
}
}Combinar una etiqueta y continue
Las etiquetas y continue permiten omitir iteraciones completas de algoritmos anidados sin usar variables de control.
fun main() {
val grid = listOf(listOf(1,2,0), listOf(3,4,5), listOf(0,6,7))
rows@ for (row in grid) {
for (cell in row) {
if (cell == 0) continue@rows
print("$cell ")
}
println()
}
}Cuándo no usar etiquetas
Las etiquetas añaden complejidad. Si recurre a ellas con frecuencia, considere extraer el bucle interno a una función que use un return normal.
fun firstMatch(grid: List<List<Int>>, target: Int): Pair<Int,Int>? {
for (r in grid.indices) for (c in grid[r].indices) {
if (grid[r][c] == target) return r to c
}
return null
}
fun main() {
val g = listOf(listOf(1,2),listOf(3,4))
println(firstMatch(g, 3))
}Comprobación rápida
¿Cómo se sale del bucle externo desde el interior de un bucle interno en Kotlin?
Resumen
break sale del bucle más interno; continue pasa a la siguiente iteración. Use label@ junto con break@label/continue@label para controlar bucles anidados. En las lambdas, prefiera return@forEach en lugar de return para evitar salidas no locales.
Aprende Kotlin con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 51
- Lecciones
- 203
Preguntas frecuentes
¿La lección «break, continue y retornos etiquetados» es gratis?
Sí — el texto completo de «break, continue y retornos etiquetados» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kotlin Academy, actualiza a CoddyKit PRO. El curso de Kotlin Academy incluye 4 lecciones en total.
¿Qué aprenderé en «break, continue y retornos etiquetados»?
Controle el flujo de los bucles con break/continue y salga de bucles anidados mediante etiquetas. Practicas Kotlin Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Kotlin Academy?
No se requiere experiencia previa. Kotlin Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «break, continue y retornos etiquetados»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Kotlin Academy?
Sí. Cada lección de Kotlin Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Bucle for sobre rangos y colecciones
- while y do-while: cuándo usar cada uno
- forEach, repeat y forEachIndexed
- break, continue y retornos etiquetados