Menu
Coddy logo textTech

Loop Aninhado

Parte da seção Fundamentos do Journey de Swift da Coddy — lição 49 de 86.

Um loop aninhado é simplesmente um loop dentro de outro loop. O loop interno completa todas as suas iterações para cada iteração individual do loop externo.

for row in 1...3 {
    for col in 1...2 {
        print("Row \(row), Col \(col)")
    }
}
// Saída:
// 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, o loop interno percorre completamente todos os valores de col. Assim, com 3 iterações externas e 2 iterações internas, o código interno é executado 6 vezes no total (3 × 2).

Loops aninhados são comumente usados para trabalhar com estruturas em forma de grade ou para gerar padrões.

Aqui está um exemplo que imprime um retângulo simples de asteriscos:

for row in 1...2 {
    for col in 1...4 {
        print("*", terminator: "")
    }
    print("")  // Mover para a próxima linha
}
// Saída:
// ****
// ****

O terminator: "" impede que o print adicione uma nova linha, para que os asteriscos apareçam na mesma linha. Após o término do loop interno, o print("") muda para a próxima linha.

challenge icon

Desafio

Fácil

Leia dois números inteiros da entrada: rows e cols. Use loops aninhados para imprimir uma grade de números onde cada célula exibe o produto do seu número de linha e número de coluna.

Você receberá as seguintes entradas:

  • Primeira linha: número de linhas (ex: "3")
  • Segunda linha: número de colunas (ex: "4")

Requisitos:

  • Use um loop externo para as linhas (1 até rows)
  • Use um loop interno para as colunas (1 até cols)
  • Imprima o produto dos números da linha e coluna atuais
  • Separe os valores na mesma linha com um espaço
  • Cada linha deve estar em sua própria linha

Dica: Use terminator: " " para manter os valores na mesma linha e, em seguida, use print("") após o loop interno para mudar para a próxima linha.

Por exemplo, se rows for 3 e cols for 4, a saída deve ser:

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

Folha de consulta

Um loop aninhado (nested loop) é um loop dentro de outro loop. O loop interno completa todas as suas iterações para cada iteração individual do loop externo.

for row in 1...3 {
    for col in 1...2 {
        print("Row \(row), Col \(col)")
    }
}
// Output:
// Row 1, Col 1
// Row 1, Col 2
// Row 2, Col 1
// Row 2, Col 2
// Row 3, Col 1
// Row 3, Col 2

Com 3 iterações externas e 2 iterações internas, o código é executado 6 vezes no total (3 × 2).

Loops aninhados são úteis para estruturas em grade e padrões:

for row in 1...2 {
    for col in 1...4 {
        print("*", terminator: "")
    }
    print("")  // Move para a próxima linha
}
// Output:
// ****
// ****

Use terminator: "" para evitar que o print adicione uma nova linha, mantendo a saída na mesma linha. Use print("") após o loop interno para mudar para a próxima linha.

Experimente você mesmo

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

// TODO: Escreva seu código abaixo
// Use loops aninhados para imprimir uma grade de multiplicação
// Loop externo: itere pelas linhas (1 até rows)
// Loop interno: itere pelas colunas (1 até cols)
// Imprima o produto de row * column
// Use print(..., terminator: " ") para manter os valores na mesma linha
// Use print("") após o loop interno para mudar 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