Laço foreach

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.

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

[editar | editar código-fonte]
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]