Menu
CoddyTech

Salir de bucles anidados

Parte de la sección Lógica y Flujo del Journey de GO de Coddy. Lección 2 de 68.

Al trabajar con bucles anidados, una instrucción break normal solo sale del bucle más interno. Sin embargo, Go proporciona etiquetas que te permiten salir directamente de los bucles externos, lo que te da un control preciso sobre estructuras de bucles complejas.

Una etiqueta es un identificador seguido de dos puntos que se coloca antes de un bucle. Después, puedes usar break seguido del nombre de la etiqueta para salir de ese bucle específico, incluso desde dentro de bucles anidados.

outer:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        if i == 1 && j == 1 {
            break outer
        }
        fmt.Printf("i=%d, j=%d\n", i, j)
    }
}

En este ejemplo, cuando se cumple la condición i == 1 && j == 1, break outer sale inmediatamente de los bucles interno y externo. Esto resulta especialmente útil al buscar en estructuras de datos bidimensionales, cuando quieres dejar de buscar por completo en cuanto encuentras lo que buscas.

challenge icon

Desafío

Fácil

En este desafío, practicarás el uso de instrucciones break con etiquetas para salir de bucles anidados mientras buscas en una cuadrícula 2D. Debes encontrar un número objetivo específico en la cuadrícula y dejar de buscar inmediatamente cuando lo encuentres.

Recibirás dos entradas:

  • Una cadena que representa las dimensiones de la cuadrícula con el formato "rows,cols" (por ejemplo, "3,4")
  • Una cadena que representa el número objetivo que debes buscar (por ejemplo, "7")

Se te proporciona la siguiente cuadrícula 2D de números:

grid := [][]int{
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12},
}

Tu tarea es:

  1. Usar los valores que ya se leyeron por ti en el código anterior: rows y cols (cuánto de la cuadrícula se debe buscar), target y grid
  2. Usar bucles anidados con una instrucción break con etiqueta para buscar en la cuadrícula
  3. Cuando encuentres el número objetivo, imprimir "Found [target] at position ([row], [col])" y salir inmediatamente de ambos bucles usando la instrucción break con etiqueta
  4. Si completas la búsqueda sin encontrar el objetivo, imprimir "Target [target] not found"

La posición debe indicarse usando índices desde 0 (la primera fila es 0 y la primera columna es 0).

Pruébalo tú mismo

    // TODO: Escribe tu código a continuación
    // Usa bucles anidados con un break etiquetado para buscar el objetivo
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo

Practica por tu cuenta: Compilador de Go online