0Pricing
C# Academy · Aula

O laço foreach

Itere sem índices.

O laço foreach é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 4 aulas no total.

O que é o laço para cada elemento

O laço foreach permite visitar cada item de uma coleção, um por vez.

Você não gerencia um índice nem um contador. O C# percorre a coleção por você e fornece cada elemento a uma variável que você nomeia.

Essa é a forma mais simples de ler todos os itens de um vetor ou de uma lista.

Sintaxe básica

O formato é simples: foreach (var item in collection) seguido de um corpo.

Em cada passagem, item contém o próximo elemento. O laço termina automaticamente depois do último.

foreach (var name in names)
{
    Console.WriteLine(name);
}

Seu primeiro laço para cada elemento

Vamos percorrer um vetor de cadeias de caracteres e imprimir cada nome.

Observe que não há índice nem verificação de comprimento. O laço simplesmente visita cada elemento na ordem.

string[] names = { "Ada", "Linus", "Grace" };
foreach (var name in names)
{
    Console.WriteLine(name);
}

A variável do laço

A variável do laço (neste caso, n) é uma cópia nova criada para cada item.

Você pode usar qualquer nome que quiser. Escolha algo que descreva o elemento, como number ou n.

int[] scores = { 90, 75, 88 };
foreach (var n in scores)
{
    Console.WriteLine(n);
}

Inferência de tipo versus tipo explícito

Você pode escrever explicitamente o tipo do elemento em vez de usar var.

Ambas as formas funcionam da mesma maneira. var permite que o compilador deduza o tipo, mantendo o código curto.

int[] scores = { 90, 75, 88 };
foreach (int score in scores)
{
    Console.WriteLine(score);
}

Executando ações no corpo

O corpo do laço pode fazer qualquer coisa: cálculos, condições ou criar um total.

Aqui adicionamos cada valor a uma soma acumulada e imprimimos o resultado depois do laço.

int[] nums = { 4, 8, 15 };
int total = 0;
foreach (var x in nums)
{
    total += x;
}
Console.WriteLine(total);

Laço para cada elemento com condições

Você pode colocar um if dentro do laço para agir somente sobre determinados itens.

Este exemplo imprime apenas os números pares do vetor.

int[] nums = { 1, 2, 3, 4, 5, 6 };
foreach (var x in nums)
{
    if (x % 2 == 0)
        Console.WriteLine(x);
}

Leitura, não substituição

A variável do laço é somente para leitura dentro do laço. Você não pode atribuir um novo valor a ela para alterar a coleção.

Esta linha causaria um erro de compilação, porque a variável do laço é imutável.

foreach (var x in nums)
{
    x = x + 1; // ERROR: cannot assign to iteration variable
}

Percorrendo caracteres

Uma cadeia de caracteres é uma sequência de caracteres, portanto você também pode percorrê-la com foreach.

Cada passagem fornece um char do texto.

string word = "code";
foreach (var c in word)
{
    Console.WriteLine(c);
}

Quando usar esse laço

Use foreach quando quiser visitar todos os elementos e não precisar do índice.

Se precisar da posição ou quiser modificar a coleção durante o percurso, um laço for será mais adequado.

Laço para cada elemento versus laço com contador

Um laço for gerencia um contador e usa indexação, como em arr[i].

foreach oculta esse mecanismo. Ele é mais curto e evita erros de diferença de um quando você só precisa ler cada item.

for (int i = 0; i < names.Length; i++)
{
    Console.WriteLine(names[i]);
}

Verificação rápida

Teste o que aprendeu sobre o laço para cada elemento.

Recapitulação

Você aprendeu que foreach visita todos os elementos de uma coleção sem usar um índice.

A variável do laço é uma cópia somente para leitura de cada item. Use foreach para leituras simples e for quando precisar da posição ou quiser modificar os itens.

Perguntas Frequentes

A aula “O laço foreach” é grátis?

Sim — o texto completo de “O laço foreach” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 4 aulas no total.

O que vou aprender em “O laço foreach”?

Itere sem índices. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C# Academy?

Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “O laço foreach”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C# Academy?

Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O laço foreach
  2. Iterando coleções
  3. break e continue
  4. Erros comuns de iteração
← Voltar para C# Academy