0Pricing
Go Academy · Lección

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 actual
  • continue: salta a la siguiente iteración
  • goto: 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:

  • break sale del bucle o switch actual
  • continue salta a la siguiente iteración
  • Las etiquetas permiten que break/continue actúen sobre un bucle externo
  • goto existe, 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

  1. Sentencias if y expresiones de inicialización
  2. El bucle for: todos los patrones
  3. Sentencias switch en Go
  4. break, continue y etiquetas
← Volver a Go Academy