O ciclo for-each fornece um mecanismo para executar um bloco de código para cada elemento de uma coleção. Alguma documentação (por exemplo, a documentação da Oracle) refere-se a estes como ciclos for melhorados.
Eis a sintaxe geral:
for(declaration: collection) {
body;
}
A declaration declara a variável usada para guardar os valores atribuídos a partir da collection.
A collection é um array ou uma coleção que contém os valores que vão ser atribuídos à variável do ciclo.
A body contém as instruções que vão ser executadas uma vez por cada valor da coleção.
Por exemplo:
char[] vowels = {'a', 'e', 'i', 'o', 'u'};
for(char vowel: vowels) {
System.out.println(vowel);
}
o que produz a seguinte saída:
a
e
i
o
u
Em geral, um ciclo for-each é preferível a um ciclo for pelas seguintes razões:
for-each itera garantidamente sobre todos os valores.for-each é mais declarativo, ou seja, o código comunica o que está a fazer, em vez de como o está a fazer.for-each é à prova de erro, ao passo que com ciclos for é fácil cometer um erro de um a mais ou a menos (pensa em usar < em vez de <=).for-each funciona com todos os tipos de coleção, incluindo aqueles que não permitem usar um índice para aceder aos elementos (por exemplo, um Set).