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.