Menu
CoddyTech

Bucle anidado

Parte de la sección Fundamentos del Journey de Kotlin de Coddy. Lección 52 de 93.

Puedes colocar un bucle dentro de otro para crear un bucle anidado. El bucle interno se ejecuta por completo en cada iteración del bucle externo.

val rows = 2
val cols = 3
for (i in 1..rows) {
    for (j in 1..cols) {
        println("i=$i, j=$j")
    }
}
// Salida:
// i=1, j=1
// i=1, j=2
// i=1, j=3
// i=2, j=1
// i=2, j=2
// i=2, j=3

Cuando i es 1, el bucle interno se ejecuta cols veces (j va de 1 a 3). Después, i pasa a ser 2 y el bucle interno comienza de nuevo, con j yendo de 1 a 3 otra vez. Esto nos da un total de 2 × 3 = 6 iteraciones. rows y cols nunca cambian: solo indican a los bucles cuándo detenerse.

Los bucles anidados se usan comúnmente para crear patrones o trabajar con estructuras similares a cuadrículas:

for (row in 1..3) {
    for (col in 1..row) {
        print("*")
    }
    println()
}
// Salida:
// *
// **
// ***

Aquí, el rango del bucle interno depende de la variable del bucle externo, creando un patrón triangular. La función print() muestra la salida sin un salto de línea, mientras que println() pasa a la línea siguiente después de cada fila.

challenge icon

Desafío

Intermedio

Lee un entero n de la entrada. Usa bucles anidados para imprimir una tabla de multiplicar de los números del 1 al n.

Para cada fila i del 1 al n, imprime los productos i * 1, i * 2, ..., i * n separados por espacios, seguidos de un salto de línea.

Por ejemplo, si la entrada es 3, la salida debería ser:

1 2 3
2 4 6
3 6 9

Si la entrada es 4, la salida debería ser:

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

Usa print() con un espacio para mostrar valores en la misma línea, y println() para pasar a la siguiente fila.

Usa un contador nuevo para cada bucle (por ejemplo, i para las filas y j para las columnas) y compara ambos con n. No cambies n: lo necesitas de nuevo en cada fila.

Pruébalo tú mismo

fun main() {
    // Lee la entrada
    val n = readLine()!!.toInt()
    
    // TODO: Escribe tu código a continuación
    // Usa bucles anidados para imprimir la tabla de multiplicar
    // Usa print() con un espacio para los valores de la misma línea
    // Usa println() para pasar a la siguiente fila
    
}
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 Kotlin