For each (ou foreach), em português para cada, é uma expressão idiomática de linguagem de computador para travessia de itens em um coleção. Foreach geralmente é usada em lugar de uma declaração for padrão. Ao contrário de outras construções de loop for, no entanto, loops foreach geralmente mantêm um contador não explícito: eles basicamente dizem "faça isso para tudo dentro deste conjunto (set)", em vez de "faça isto x vezes". Isso evita possíveis erros off-by-one e torna o código mais fácil de ler. Em linguagens orientadas a objetos um iterador, mesmo que implícito, é frequentemente utilizado como meio de travessia.
Sintaxe
A sintaxe varia entre as linguagens. A maioria delas usam a palavra simples for
, mais ou menos da seguinte forma:
for each item in coleção:
faça algo com o item
Suporte de linguagens
Python
for item in colecao_iteravel:
# faça algo com o item
A atribuição de tupla de Python, totalmente disponível em seu loop foreach, também torna trivial iterar em pares (chave, valor) em arrays associativos:
for chave, valor in algum_dicionario.items(): # iteração direta em um dicionário itera em suas chaves
# faça algo
Como for ... in
é o único tipo de loop em Python, o equivalente ao loop "contador" encontrado em outras linguagens é:
for i in range(len(seq)):
# faça algo à seq[i]
... apesar de que usar a função enumerate
é considerado mais "Pythônico":
for i, item in enumerate(seq):
# faça algo com o item
# possivelmente designe-o de volta à seq[i]