break, continue y etiquetas
Control del flujo de bucles y breaks con etiquetas
break, continue y etiquetas es una lección gratuita de Go 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 Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.
Fundamentos del control de bucles
Go proporciona tres palabras clave para controlar la ejecución de los bucles:
break: sale del bucle o switch actualcontinue: salta a la siguiente iteracióngoto: salta a una sentencia etiquetada; se usa rara vez
Las etiquetas permiten que break y continue actúen sobre bucles externos.
break en un bucle
break sale inmediatamente de la sentencia for, switch o select más interna:
for i := 0; i < 100; i++ {
if i*i > 50 {
break
}
fmt.Println(i)
}continue
continue omite el resto del cuerpo del bucle actual y salta a la sentencia posterior o a la comprobación de la condición:
for i := 0; i < 10; i++ {
if i%2 == 0 {
continue // skip even numbers
}
fmt.Println(i) // prints 1,3,5,7,9
}break con etiqueta
Una etiqueta antes de un bucle for permite salir de él desde un bucle interno:
search:
for i, row := range grid {
for j, cell := range row {
if cell == target {
fmt.Printf("found at %d,%d\n", i, j)
break search
}
}
}continue con etiqueta
Un continue con etiqueta salta a la siguiente iteración del bucle externo etiquetado:
outer:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if j == 1 {
continue outer
}
fmt.Printf("%d,%d\n", i, j)
}
}Cuándo usar etiquetas
Las etiquetas son apropiadas cuando:
- Necesita salir de un bucle anidado desde un nivel profundo
- Extraer la lógica a una función resultaría demasiado extenso
Las etiquetas no son habituales en Go; si necesita usarlas con frecuencia, considere refactorizar mediante funciones o canales.
goto (poco frecuente)
Go tiene goto para saltar a una sentencia etiquetada. Está permitido dentro de la misma función y no puede saltar por encima de declaraciones de variables:
- Casos de uso: código generado y bucles compactos de gestión de errores
- Evítelo en código escrito manualmente; prefiera un flujo de control estructurado
break en select
Dentro de una sentencia select, break sale del select, no de un bucle for externo. Use un break con etiqueta para salir del bucle externo:
loop:
for {
select {
case msg := <-ch:
handle(msg)
case <-done:
break loop
}
}Evitar el anidamiento profundo
Los bucles profundamente anidados son difíciles de leer. Antes de añadir un break con etiqueta, pregúntese:
- ¿Puedo extraer el bucle interno a una función auxiliar?
- ¿Puedo usar un canal o un slice para simplificar la iteración?
- ¿Pueden los retornos anticipados reducir el anidamiento en el nivel externo?
Patrón práctico: búsqueda con break
Un patrón habitual es buscar en una colección y salir con break cuando se encuentra el elemento:
func contains(slice []string, target string) bool {
for _, v := range slice {
if v == target {
return true // prefer return over break+flag
}
}
return false
}Comprobación rápida
¿Cómo se sale de un bucle externo desde el interior de un bucle interno en Go?
Resumen: break, continue y etiquetas
Controle eficazmente el flujo de los bucles en Go:
breaksale del bucle o switch actualcontinuesalta a la siguiente iteración- Las etiquetas permiten que
break/continueactúen sobre un bucle externo gotoexiste, pero rara vez se usa en Go idiomático- Dentro de select, use un break con etiqueta para salir de un bucle for externo
Siguiente curso: funciones y múltiples valores de retorno.
Preguntas frecuentes
¿La lección «break, continue y etiquetas» es gratis?
Sí — el texto completo de «break, continue y etiquetas» 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 Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.
¿Qué aprenderé en «break, continue y etiquetas»?
Control del flujo de bucles y breaks con etiquetas Practicas Go 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 Go Academy?
No se requiere experiencia previa. Go 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 etiquetas»?
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 Go Academy?
Sí. Cada lección de Go 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
- Sentencias if y expresiones de inicialización
- El bucle for: todos los patrones
- Sentencias switch en Go
- break, continue y etiquetas