Estruturas de Controle: Aprenda break, continue e goto
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!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!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!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!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!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!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:
- Dominar a sintaxe do
for
e📊 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
- Escolher o loop certo para cada situação
- Evitar armadilhas comuns
🔏 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. (como loops infinitos)
- Aplicar em cenários
📊 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. reais com exemplos práticos
📌 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!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!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!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!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.
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!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!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!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!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:
int i = 1
: Cria a variável🧠 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. contadora
i <= 5
: Condição para continuar o loopi++
: Incrementa o contador após cada iteração
💡 Dica: Use for
quando📊 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!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!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!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!)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ério | for | while |
---|---|---|
Quando usar | Número conhecido de iterações | Número desconhecido de iterações |
Contador | Integrado na sintaxe | Precisa ser gerenciado manualmente |
Uso comum | Iterar sobre coleções | Esperar por entrada específica |
Exemplo de transição: Um for
pode ser reescrito como while
, mas📊 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 imediatamentecontinue
: Pula para a próxima iteração do loop
Exemplo real: Procurar um item em uma lista📦 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 dei++
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!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!");
- Enquanto o usuário não digitar fim, continuaremos perguntando por novos produtos
🎲 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..
- Assim que a palavra fim é detectada, saímos do loop.
Exemplo prático: Validando entrada de usuário 🔗
1. Pede ao usuário um número entre 1 e📊 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}");
- Use
for
para iterações contadas - Prefira
while
quando📊 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 de parada é complexa
- Evite loops infinitos garantindo que a condição mude
- Use
break/continue
com moderação (podem dificultar a leitura)
Conclusão 🔗
Dominar loops é como ganhar um superpoder de automação! Com for
e📊 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:
- Processar coleções de dados
- Criar
📡 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. menus interativos
- Validar entradas de usuário
- Implementar algoritmos complexos
Os loops for e📊 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!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🔗
- .NET Documentation: learn.microsoft.com/pt-br/dotnet/
- Awesome .NET: github.com/quozd/awesome-dotnet
- C# Language Specification: learn.microsoft.com/pt-br/dotnet/csharp/language-reference/language-specification/
- GitHub: Microsoft/.NET: github.com/dotnet
- Microsoft Learn: C# e .NET: learn.microsoft.com/pt-br/dotnet/csharp/