Menu
Coddy logo textTech

Loops Aninhados

Parte da seção Fundamentos do Journey de GO da Coddy. Lição 49 de 109.

Loops aninhados são loops colocados dentro de outro loop. O loop interno é executado completamente a cada iteração do loop externo.

Vamos criar uma tabela de multiplicação para os números de 1 a 3 usando loops aninhados:

for i := 1; i <= 3; i++ {
    for j := 1; j <= 3; j++ {
        fmt.Printf("%d×%d=%d\t", i, j, i*j)
    }
    fmt.Println()
}

Após executar este código, obtemos uma tabuada em que cada linha representa um valor da variável do loop externo (i) multiplicado por todos os valores da variável do loop interno (j). A saída será exibida na tela:

1×1=1   1×2=2   1×3=3   
2×1=2   2×2=4   2×3=6   
3×1=3   3×2=6   3×3=9   

Vamos entender como isso funciona passo a passo:

Primeiro, o loop externo define i=1 e o loop interno é executado completamente:

i=1, j=1: prints "1×1=1"
i=1, j=2: prints "1×2=2"
i=1, j=3: prints "1×3=3"

Depois que o loop interno termina, imprimimos uma nova linha com fmt.Println().

Em seguida, o loop externo define i=2 e o loop interno é executado novamente:

i=2, j=1: prints "2×1=2"
i=2, j=2: prints "2×2=4"
i=2, j=3: prints "2×3=6"

Por fim, o loop externo define i=3, e o loop interno é executado uma última vez:

i=3, j=1: prints "3×1=3"
i=3, j=2: prints "3×2=6"
i=3, j=3: prints "3×3=9"

Este padrão de loops dentro de loops é muito útil para trabalhar com tabelas de dados ou criar estruturas semelhantes a grades.

challenge icon

Desafio

Iniciante

Neste desafio, você praticará o uso de loops aninhados para imprimir um padrão simples. O loop externo percorrerá as linhas, e o loop interno percorrerá as colunas para criar uma pequena grade de caracteres.

Complete os loops aninhados para imprimir uma grade 3x3 de asteriscos (*). Cada asterisco deve ser seguido por um espaço, portanto, cada linha deve ser semelhante a * * * (com um espaço no final). A saída esperada é:

* * * 
* * * 
* * * 

Experimente você mesmo

package main

import "fmt"

func main() {
	// Número de linhas e colunas em nossa grade
	rows := 3
	columns := 3
	
	// TODO: Crie um loop aninhado para imprimir uma grade de asteriscos (*)
	// O loop externo deve iterar pelas linhas
	// O loop interno deve iterar pelas colunas
	for i := 0; i < rows; i++ {
		// Adicione seu loop interno aqui para imprimir asteriscos em cada coluna
		
		// Isso imprime uma nova linha após cada linha
		fmt.Println()
	}
}
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: Compilador de Go online