Menu
CoddyTech

Loop Aninhado

Parte da seção Fundamentos do Journey de C# da Coddy. Lição 46 de 69.

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

Uma boa analogia para isso é um relógio: para cada hora (loop externo), o ponteiro dos minutos (loop interno) precisa completar seu ciclo completo de 60 minutos.

Exemplo de um loop aninhado:

int rows = 2;
int cols = 2;
for (int x = 0; x < rows; x++) {
	for (int y = 0; y < cols; y++) {
		Console.WriteLine(x + " " + y);
	}
}

// Isso produzirá a seguinte saída:
// 0 0
// 0 1
// 1 0
// 1 1

O loop externo (x) é executado rows vezes e, em cada uma delas, o loop interno (y) é executado cols vezes, o que significa que o corpo do loop interno é executado um total de 2 × 2 = 4 vezes. Cada loop tem seu próprio contador: y começa novamente em 0 toda vez que o loop externo é executado, enquanto rows e cols permanecem iguais e apenas indicam aos loops quando parar.

Você também pode precisar de Console.Write() ao trabalhar com loops aninhados. Ao contrário de Console.WriteLine(), que imprime texto e passa para uma nova linha, Console.Write() imprime texto sem adicionar uma quebra de linha no final. Isso permite que você acumule a saída na mesma linha:

for (int y = 0; y < 4; y++) {
	Console.Write("* ");
}
Console.WriteLine();

// Isso produzirá a seguinte saída:
// * * * * 

Aqui, Console.Write() continua imprimindo na mesma linha, e Console.WriteLine() no final passa para a próxima linha.

challenge icon

Desafio

Iniciante

Escreva um programa que imprima um retângulo de asteriscos (*) com uma largura e uma altura determinadas.

Entrada: dois números inteiros: width e height

Por exemplo:

Se width = 5 e height = 3, a saída deve ser:

*****
*****
*****

Se width = 4 e height = 6, a saída deve ser:

****
****
****
****
****
****

Use um novo contador para cada loop (por exemplo, i para as linhas e j para os asteriscos em uma linha) e compare-o com height ou width. Não altere height e width: cada linha precisa de width novamente.

Experimente você mesmo

using System;

public class Program {
    public static void Main(string[] args) {
        int width = int.Parse(Console.ReadLine());
        int height = int.Parse(Console.ReadLine());
        // Escreva seu código abaixo

    }
}
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 C# online