Menu
CoddyTech

Bucle anidado

Parte de la sección Fundamentos del Journey de Swift de Coddy. Lección 49 de 86.

Un bucle anidado es simplemente un bucle dentro de otro bucle. El bucle interno completa todas sus iteraciones en cada iteración del bucle externo.

let rows = 3
let cols = 2
for row in 1...rows {
    for col in 1...cols {
        print("Row \(row), Col \(col)")
    }
}
// Salida:
// Row 1, Col 1
// Row 1, Col 2
// Row 2, Col 1
// Row 2, Col 2
// Row 3, Col 1
// Row 3, Col 2

Para cada valor de row, el bucle interno vuelve a empezar y recorre todos los valores de col, desde 1 hasta cols. Así que, con rows = 3 y cols = 2, el código que hay dentro se ejecuta 6 veces en total (3 × 2). rows y cols nunca cambian: solo indican a los bucles cuándo detenerse.

Los bucles anidados se utilizan comúnmente para trabajar con estructuras similares a cuadrículas o para generar patrones.

Aquí tienes un ejemplo que imprime un rectángulo sencillo de asteriscos:

for row in 1...2 {
    for col in 1...4 {
        print("*", terminator: "")
    }
    print("")  // Pasa a la siguiente línea
}
// Salida:
// ****
// ****

El terminator: "" evita que print añada un salto de línea, así que los asteriscos aparecen en la misma fila. Después de que termine el bucle interno, print("") pasa a la línea siguiente.

challenge icon

Desafío

Fácil

Lee dos enteros de la entrada: rows y cols. Usa bucles anidados para imprimir una cuadrícula de números donde cada celda muestre el producto de su número de fila y su número de columna.

Recibirás las siguientes entradas:

  • Primera línea: número de filas (p. ej., "3")
  • Segunda línea: número de columnas (p. ej., "4")

Requisitos:

  • Usa un bucle externo para las filas (de 1 a rows)
  • Usa un bucle interno para las columnas (de 1 a cols)
  • Imprime el producto de los números de la fila y la columna actuales
  • Separa con un espacio los valores de una misma fila
  • Cada fila debe estar en su propia línea

Pista: Usa terminator: " " para mantener los valores en la misma línea; después, usa print("") después del bucle interno para pasar a la siguiente línea.

Por ejemplo, si rows es 3 y cols es 4, la salida debería ser:

1 2 3 4 
2 4 6 8 
3 6 9 12 

Usa un contador nuevo para cada bucle (por ejemplo, row para las filas y col para los números de una fila) y compáralo con rows o cols. No cambies rows ni cols: cada fila necesita cols de nuevo.

Pruébalo tú mismo

let rows = Int(readLine()!)!
let cols = Int(readLine()!)!

// TODO: Escribe tu código a continuación
// Usa bucles anidados para imprimir una tabla de multiplicar
// Bucle externo: recorre las filas (1 a rows)
// Bucle interno: recorre las columnas (1 a cols)
// Imprime el producto de row * column
// Usa print(..., terminator: " ") para mantener los valores en la misma línea
// Usa print("") después del bucle interno para pasar a la siguiente línea
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 Fundamentos

Practica por tu cuenta: Playground de Swift