Notebook exibindo código em um ambiente de desenvolvimento
Uma repetição possui início, condição, ação e atualização. Crédito da foto.
Compartilhe este conteúdo

A estrutura for repete um bloco de código quando o controle da repetição pode ser expresso com clareza por uma inicialização, uma condição e uma atualização. Ela é muito usada quando conhecemos a quantidade de repetições, mas também atende outros casos em que essas três partes tornam o laço legível.

A estrutura básica

for (int numero = 1; numero <= 5; numero++)
{
    Console.WriteLine(numero);
}

O comando exibirá os números de 1 a 5. Dentro dos parênteses existem três partes separadas por ponto e vírgula.

  1. int numero = 1: inicialização. A variável é criada e começa com 1.
  2. numero <= 5: condição. A repetição continua enquanto ela for verdadeira.
  3. numero++: atualização. Após cada volta, o valor aumenta em uma unidade.

O que acontece em cada volta?

  1. A variável numero recebe 1.
  2. O programa verifica se 1 é menor ou igual a 5.
  3. Como a condição é verdadeira, mostra 1.
  4. Executa numero++, e o valor passa a 2.
  5. Repete a verificação e continua até mostrar 5.
  6. Quando o valor chega a 6, a condição fica falsa e o laço termina.
Atenção às aspas: Console.WriteLine("numero") mostra a palavra “numero”. Console.WriteLine(numero) mostra o valor guardado na variável.

Exemplo: mostrar apenas números pares

for (int numero = 2; numero <= 10; numero += 2)
{
    Console.WriteLine(numero);
}

O valor começa em 2 e aumenta de dois em dois. O resultado será 2, 4, 6, 8 e 10.

Exemplo: somar valores digitados

double total = 0;

for (int item = 1; item <= 3; item++)
{
    Console.Write("Digite o valor do item: ");
    double valor = Convert.ToDouble(Console.ReadLine());
    total += valor;
}

Console.WriteLine("Total: R$ " + total);

A variável total precisa ser criada antes do laço para conservar a soma entre as repetições. O texto digitado pelo teclado chega como texto; por isso é convertido para double.

Exemplo: calcular média

double soma = 0;

for (int contador = 1; contador <= 4; contador++)
{
    Console.Write("Digite a nota: ");
    double nota = Convert.ToDouble(Console.ReadLine());
    soma += nota;
}

double media = soma / 4;
Console.WriteLine("Média: " + media);

Erros comuns

Condição que nunca fica falsa

Se a variável não for atualizada corretamente, o laço pode continuar indefinidamente. Verifique se o valor se aproxima do limite.

Usar a direção errada

Se o valor começa em 1 e a condição é chegar a 10, normalmente ele deve aumentar. Usar numero-- faria o valor se afastar do objetivo.

Começar ou terminar no número errado

Compare < com <=. A primeira condição não inclui o limite; a segunda inclui.

Desafio

Crie um programa que solicite cinco preços, mostre o total e informe quantos valores foram maiores que R$ 100. Planeje primeiro as variáveis necessárias.

Perguntas frequentes

Quando usar for em vez de while?

O for é conveniente quando o controle da repetição cabe em inicialização, condição e atualização. O while é útil quando a quantidade de repetições depende de uma situação que pode variar.

A variável do for existe fora do laço?

Quando ela é declarada dentro da inicialização, normalmente seu escopo fica limitado ao laço.

Referências bibliográficas

Obras reconhecidas que fundamentam e aprofundam os conceitos apresentados neste artigo.

  1. ALBAHARI, Joseph. C# 12 in a Nutshell. O’Reilly Media, 2023.
  2. TROELSEN, Andrew; JAPIKSE, Phil. Pro C# 10 with .NET 6. 11. ed. Apress, 2022.

Consulte a bibliografia completa do Código em Sala.