Dominando Loops Aninhados em C#: For, While e Do-While Explicados
Um loop dentro de outro loop é chamado de loop aninhado (nested loop). Veja a estrutura:
Outer-Loop { // corpo do outer-loop
Inner-Loop { // corpo do inner-loop }
...
}
O loop externo envolve o loop interno. O interno é parte do externo e deve iniciar e terminar dentro do corpo do externo.
Em cada iteração do loop externo, o loop interno executa completamente.
Loop for aninhado
Um loop for dentro de outro for é chamado nested for loop.
Exemplo:
for (int i=0; i<5; i++) { // corpo do outer for loop
for (int j=0; j<5; j++) { // corpo do inner for loop }
// corpo do outer for loop
}
Exemplo 1: Loop for Aninhado
using System;
namespace Loop {
class NestedForLoop {
public static void Main(string[] args) {
int outerLoop = 0, innerLoop = 0;
for (int i=1; i<=5; i++) {
outerLoop++;
for (int j=1; j<=5; j++) {
innerLoop++;
}
}
Console.WriteLine("Outer Loop runs {0} times", outerLoop);
Console.WriteLine("Inner Loop runs {0} times", innerLoop);
}
}
}
Saída:
Outer Loop runs 5 times Inner Loop runs 25 times
O loop externo roda 5 vezes. Cada vez, o interno roda 5 vezes, totalizando 25 execuções.
Exemplo 2: Loop for Aninhado para Imprimir Padrão
using System;
namespace Loop {
class NestedForLoop {
public static void Main(string[] args) {
for (int i=1; i<=5; i++) {
for (int j=1; j<=i; j++) {
Console.Write(j + " ");
}
Console.WriteLine();
}
}
}
}
Saída:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
Loop while aninhado
Um while dentro de outro while é nested while loop.
Exemplo:
while (condição-1) { // corpo do outer while loop
while (condição-2) { // corpo do inner while loop }
// corpo do outer while loop
}
Exemplo 3: Loop while Aninhado
using System;
namespace Loop {
class NestedWhileLoop {
public static void Main(string[] args) {
int i=0;
while (i<2) {
int j=0;
while (j<2) {
Console.Write("({0},{1}) ", i,j);
j++;
}
i++;
Console.WriteLine();
}
}
}
}
Saída:
(0,0) (0,1) (1,0) (1,1)
Loop do-while aninhado
Um do-while dentro de outro do-while é nested do-while loop.
Exemplo:
do { // corpo do outer while loop
do { // corpo do inner while loop }
while (condição-2);
} while (condição-1);
Exemplo 4: Loop do-while Aninhado
using System;
namespace Loop {
class NestedWhileLoop {
public static void Main(string[] args) {
int i=0;
do {
int j=0;
do {
Console.Write("({0},{1}) ", i,j);
j++;
} while (j<2);
i++;
Console.WriteLine();
} while (i<2);
}
}
}
Saída:
(0,0) (0,1) (1,0) (1,1)
Loops internos e externos diferentes
Não é obrigatório aninhar loops do mesmo tipo. Podemos colocar for dentro de while ou do-while dentro de for.
Exemplo 5: Loop Aninhado C#: Loops Internos e Externos Diferentes
using System;
namespace Loop {
class NestedLoop {
public static void Main(string[] args) {
int i=1;
while (i<=5) {
for (int j=1; j<=i; j++) {
Console.Write(i + " ");
}
Console.WriteLine();
i++;
}
}
}
}
Saída:
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
No programa acima, um for loop está dentro de um while loop. Podemos usar diferentes tipos de loop uns dentro dos outros.
Linguagem C
- Fundamentos de C#: Essenciais de Entrada e Saída
- Dominando Structs em C: Passagem, Retorno e Manipulação por Referência
- Dominando Diretivas de Pré-processador em C#: Guia Prático
- Configurando seu Ambiente de Programação C: Ferramentas Essenciais e Dicas
- Dominando Variáveis e Operadores em C#: Exemplos Práticos e Explicações
- Métodos em C# Explicados: Declaração, Chamada, Parâmetros, Tipos de Retorno e Mais
- Dominando Operadores em Programação C: Um Guia Abrangente
- Dominando Collections em C#: Tutorial Prático com Exemplos do Mundo Real
- Ambiente de Desenvolvimento C#: Ferramentas e Visão do Framework
- Dominando o Tipo Char em C++: Declaração, ASCII e Técnicas de Conversão