Menu
CoddyTech

Laço Aninhado

Parte da seção Fundamentos do Journey de Kotlin da Coddy. Lição 52 de 93.

Você pode colocar um loop dentro de outro loop para criar um loop aninhado. O loop interno é executado completamente a cada iteração do loop externo.

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

Quando i é 1, o loop interno é executado cols vezes (j vai de 1 a 3). Então i se torna 2, e o loop interno recomeça, com j indo de 1 a 3 novamente. Isso nos dá 2 × 3 = 6 iterações no total. rows e cols nunca mudam: eles apenas dizem aos loops quando parar.

Laços aninhados são comumente usados para criar padrões ou trabalhar com estruturas semelhantes a grades:

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

Aqui, o intervalo do loop interno depende da variável do loop externo, criando um padrão triangular. A função print() exibe a saída sem uma quebra de linha, enquanto println() passa para a linha seguinte após cada linha.

challenge icon

Desafio

Médio

Leia um número inteiro n da entrada. Use loops aninhados para imprimir uma tabuada para os números de 1 a n.

Para cada linha i, de 1 a n, imprima os produtos i * 1, i * 2, ..., i * n separados por espaços, seguidos por uma quebra de linha.

Por exemplo, se a entrada for 3, a saída deverá ser:

1 2 3
2 4 6
3 6 9

Se a entrada for 4, a saída deverá ser:

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

Use print() com um espaço para exibir valores na mesma linha, e println() para passar para a próxima linha.

Use um contador novo para cada loop (por exemplo, i para as linhas e j para as colunas) e compare ambos com n. Não altere o próprio n: cada linha precisa dele novamente.

Experimente você mesmo

fun main() {
    // Leia a entrada
    val n = readLine()!!.toInt()
    
    // TODO: Escreva seu código abaixo
    // Use laços aninhados para imprimir a tabuada
    // Use print() com um espaço para os valores na mesma linha
    // Use println() para passar para a próxima linha
    
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de Kotlin