Domine Loops em C#: Técnicas For e While Avançadas

Imagina ter que escrever manualmente 100 vezes "Eu não vou esquecer o ponto e📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. vírgula no final da linha!" num programa. 🥵 É aí que os loops entram como heróis! Em C#, for e📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. while são suas ferramentas para automatizar repetições de forma inteligente. Vamos desvendar como usá-los sem cair em loops infinitos (ou na loucura!).

Imagine precisar repetir uma mesma tarefa🤝 GitHub Básico: Versionamento para Iniciantes!🤝 GitHub Básico: Versionamento para Iniciantes!Descubra como o GitHub facilita colaboração, versionamento e organização de código com este tutorial prático e essencial para desenvolvedores iniciantes. várias vezes no seu dia: verificar uma lista de seguidores, limpar uma pilha de arquivos, ou até mesmo rodar um teste simples centenas de vezes. Em vez de copiar e colar o mesmo trecho de código (ou fazer tudo manualmente), podemos usar loops em C#. Eles permitem executar🔍 Comandos: Desacople Ações dos Botões!🔍 Comandos: Desacople Ações dos Botões!Aprenda a implementar comandos em C# para desacoplar lógica e interface usando MVVM, com exemplos práticos e dicas para melhor testabilidade e manutenção. blocos de código repetidas vezes, sem você precisar enlouquecer!

A seguir, vamos explorar duas poderosas estruturas de repetição: for e📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. while. Veremos como elas funcionam, quando📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. usar cada uma e exemplos práticos que levam em conta situações do mundo real. Tudo passo a passo para você escrever código mais eficiente e automatizado.

👉 Neste artigo você vai:

📌 Conteúdo 🔗

1. O Que São Loops de Repetição?

2. Loop for: Controle preciso de repetições

3. Loop while: Repetições condicionais

4. Quando📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. usar for vs while?

5. Loops aninhados: Um loop dentro do outro

6. Controlando o fluxo: break e📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. continue

7. Exemplo prático📝 Logging com Serilog: Registre Tudo como um Detetive de Bugs!📝 Logging com Serilog: Registre Tudo como um Detetive de Bugs!Aprenda a usar Serilog em .NET para registrar logs estruturados, identificar erros e enriquecer informações, transformando seu código num enigma solucionável.: Contagem Regressiva e Entrada do Usuário

8. Exemplo prático📝 Logging com Serilog: Registre Tudo como um Detetive de Bugs!📝 Logging com Serilog: Registre Tudo como um Detetive de Bugs!Aprenda a usar Serilog em .NET para registrar logs estruturados, identificar erros e enriquecer informações, transformando seu código num enigma solucionável.: Validando entrada de usuário

O Que São Loops de Repetição? 🔗

  • Loops servem para repetir trechos de código várias vezes, de modo automático. A lógica é sempre basicamente:

1. Verificar se a condição para continuar executando ainda é verdadeira.

2. Executar🔍 Comandos: Desacople Ações dos Botões!🔍 Comandos: Desacople Ações dos Botões!Aprenda a implementar comandos em C# para desacoplar lógica e interface usando MVVM, com exemplos práticos e dicas para melhor testabilidade e manutenção. o bloco de código.

3. Repetir enquanto a condição for válida.

Isso economiza tempo (e linhas de código) e evita que você precise escrever praticamente o mesmo comando🔍 Comandos: Desacople Ações dos Botões!🔍 Comandos: Desacople Ações dos Botões!Aprenda a implementar comandos em C# para desacoplar lógica e interface usando MVVM, com exemplos práticos e dicas para melhor testabilidade e manutenção. várias vezes.

Loop for: Controle preciso de repetições 🔗

O for é ideal quando📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. você sabe quantas vezes o loop deve executar🔍 Comandos: Desacople Ações dos Botões!🔍 Comandos: Desacople Ações dos Botões!Aprenda a implementar comandos em C# para desacoplar lógica e interface usando MVVM, com exemplos práticos e dicas para melhor testabilidade e manutenção.. Sua estrutura é dividida em 3 partes:

for (inicialização; condição; incremento)  
{  
    // Código a ser repetido  
}  

Exemplo real: Calcular a média🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. de 5 notas

double soma = 0;  
for (int i = 1; i <= 5; i++)  
{  
    Console.Write($"Digite a nota {i}: ");  
    soma += Convert.ToDouble(Console.ReadLine());  
}  
Console.WriteLine($"Média: {soma / 5}");  

🔍 Detalhamento:

💡 Dica: Use for quando📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. precisar de um contador controlado (ex: processar elementos de um array).

Loop while: Repetições condicionais 🔗

Diferente do for, o while não depende tanto de saber a quantidade🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. de repetições de antemão. Ele se repete enquanto uma condição permanecer verdadeira. A sintaxe é:

while (condição)
{
    // Código a ser repetido
}

O loop só para quando📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. a condição for falsa. Exemplos de uso🔏 Criptografia Assimétrica: Domine RSA e Troca de Chaves!🔏 Criptografia Assimétrica: Domine RSA e Troca de Chaves!Descubra como a criptografia assimétrica protege a troca de chaves e garante segurança em sistemas digitais usando RSA, C# e práticas recomendadas. podem incluir aguardar a entrada de um usuário, verificar se um arquivo já chegou num diretório ou acompanhar um valor de sensor até atingir determinado ponto.

Exemplo real: Menu interativo

string opcao = "";  
while (opcao != "sair")  
{  
    Console.WriteLine("1 - Cadastrar\n2 - Listar\nsair - Sair");  
    opcao = Console.ReadLine().ToLower();  
    switch (opcao)  
    {  
        case "1": /* Cadastra */ break;  
        case "2": /* Lista */ break;  
    }  
}  

⚠️ Cuidado: Se a condição nunca virar false, você cria um loop infinito. Sempre atualize a variável🧠 Variáveis em C#: Onde os Dados Ganham Vida (e Nome!)🧠 Variáveis em C#: Onde os Dados Ganham Vida (e Nome!)Descubra como as variáveis em C# funcionam, com exemplos do mundo real, boas práticas de nomeação e dicas para otimizar seu código. da condição!

Quando usar for vs while? 🔗

Critérioforwhile
Quando usarNúmero conhecido de iteraçõesNúmero desconhecido de iterações
ContadorIntegrado na sintaxePrecisa ser gerenciado manualmente
Uso comumIterar sobre coleçõesEsperar por entrada específica

Exemplo de transição: Um for pode ser reescrito como while, mas📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. não é recomendado:

// For  
for (int i=0; i<10; i++) { /* ... */ }  
// Equivalente em while  
int i=0;  
while (i<10)  
{  
    /* ... */  
    i++;  
}  

Loops aninhados: Um loop dentro do outro 🔗

Úteis para trabalhar com estruturas multidimensionais (ex: matrizes).

Exemplo real: Gerar tabuada

for (int i = 1; i <= 10; i++)       // Linhas  
{  
    for (int j = 1; j <= 10; j++)   // Colunas  
    {  
        Console.Write($"{i*j}\t");  
    }  
    Console.WriteLine();  
}  

📊 Saída:

1   2   3   ... 10  
2   4   6   ... 20  
...  
10  20 30  ... 100  

🚨 Atenção: Loops aninhados aumentam a complexidade computacional. Evite aninhar além de 3 níveis.

Controlando o fluxo: break e continue 🔗

  • break: Interrompe todo o loop imediatamente
  • continue: Pula para a próxima iteração do loop

Exemplo real: Procurar um item em uma lista📦 List<T>: Dinamismo além dos Arrays!📦 List<T>: Dinamismo além dos Arrays!Descubra como utilizar List<T> em C# de forma eficiente. Aprenda a criar, manipular e otimizar listas para diferentes cenários com exemplos práticos.

string[] frutas = { "maçã", "banana", "uva", "pera" };  
bool encontrou = false;  
for (int i=0; i<frutas.Length; i++)  
{  
    if (frutas[i] == "uva")  
    {  
        encontrou = true;  
        break;  // Sai do loop assim que encontrar  
    }  
}  

Exemplo com continue: Ignorar números negativos

for (int i=0; i<10; i++)  
{  
    if (i % 2 == 0)  
        continue;  // Pula números pares  
    Console.WriteLine(i);  
}  
// Saída: 1 3 5 7 9  

Exemplo prático: Contagem Regressiva e Entrada do Usuário 🔗

Para demonstrar como esses loops podem ajudar muito no dia a dia, vamos unir as ideias em dois exemplos compactos.

1) Contagem Regressiva com for

Suponha que você queira soltar um countdown de 5 segundos até algo acontecer:

Console.WriteLine("Em breve vamos iniciar a sequência de eventos:");  
for (int i = 5; i > 0; i--)  
{  
    Console.WriteLine($"Faltam {i} segundos...");  
    // Simulando algum tempo de espera  
    System.Threading.Thread.Sleep(1000);  
}  
Console.WriteLine("Começou!");  
  • Usamos i-- no lugar de i++ para contar de forma decrescente.
  • Após cada segundo, mostramos quantos segundos faltam.

2) Entrada com while

Agora, digamos que você quer ficar perguntando ao usuário qual produto🔢 Operadores Aritméticos: Faça Cálculos como uma Calculadora Humana!🔢 Operadores Aritméticos: Faça Cálculos como uma Calculadora Humana!Aprenda a dominar operadores aritméticos em C# com exemplos práticos, técnicas de cálculo e dicas para evitar erros e maximizar resultados. ele quer comprar até ele digitar algo como "fim":

string produto = "";  
while (produto != "fim")  
{  
    Console.WriteLine("Digite o produto que deseja adicionar ao carrinho, ou digite 'fim' para finalizar:");  
    produto = Console.ReadLine();  
    if (produto != "fim")  
    {  
        Console.WriteLine($"O produto '{produto}' foi adicionado ao carrinho!");  
    }  
}  
Console.WriteLine("Compra finalizada. Obrigado!");  

Exemplo prático: Validando entrada de usuário 🔗

Vamos criar📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. um sistema que:

1. Pede ao usuário um número entre 1 e📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. 10

2. Repete até que a entrada seja válida

int numero;  
while (true)  // Loop infinito controlado  
{  
    Console.Write("Digite um número entre 1 e 10: ");  
    bool valido = int.TryParse(Console.ReadLine(), out numero);  
    if (valido && numero >=1 && numero <=10)  
        break;  // Entrada válida: sai do loop  
    Console.WriteLine("Erro! Tente novamente.");  
}  
Console.WriteLine($"Você digitou: {numero}");  

✅ Checklist de boas práticas🔢 Operadores Aritméticos: Faça Cálculos como uma Calculadora Humana!🔢 Operadores Aritméticos: Faça Cálculos como uma Calculadora Humana!Aprenda a dominar operadores aritméticos em C# com exemplos práticos, técnicas de cálculo e dicas para evitar erros e maximizar resultados.:

Conclusão 🔗

Dominar loops é como ganhar um superpoder de automação! Com for e📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. while, você pode:

Os loops for e📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. while em C# são perfeitos para lidar com tarefas repetitivas, sejam elas previsíveis ou condicionais. Agora que você sabe como cada um funciona, já tem a ferramenta certa para não precisar mais dar Ctrl+C e Ctrl+V no seu código. Explore as duas opções, crie seus próprios exemplos e entenda como cada loop pode se encaixar em diferentes cenários📊 Behavior-Driven Development: Testes que Todo Mundo Entende!📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. do seu dia a dia de programação!

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados