El bucle for-each proporciona un mecanismo para ejecutar un bloque de código para cada elemento de una colección.
Algunas documentaciones (p. ej., la de Oracle) se refieren a ellos como bucles for mejorados.
Esta es la sintaxis general:
for(declaration: collection) {
body;
}
La declaration declara la variable que se usa para contener los valores asignados desde la colección.
La collection es un array o una colección que contiene los valores que se asignarán a la variable del bucle.
El body contiene las instrucciones que se ejecutarán una vez por cada valor de la colección.
Por ejemplo:
char[] vowels = {'a', 'e', 'i', 'o', 'u'};
for(char vowel: vowels) {
System.out.println(vowel);
}
que genera:
a
e
i
o
u
En general, un bucle for-each es preferible a un bucle for por las siguientes razones:
for-each garantiza que se itera sobre todos los valores.for-each es más declarativo, lo que significa que el código comunica qué hace en lugar de cómo lo hace.for-each es infalible, mientras que con los bucles for es fácil cometer un error de desfase por uno (piensa en usar < frente a <=).for-each funciona con todos los tipos de colección, incluidos aquellos que no admiten el uso de un índice para acceder a los elementos (p. ej., un Set).