El último tipo de loop que vamos a ver es el for-each loop en Java.
Usamos for-each para iterar arrays o colecciones de forma más simple.
Vamos a verlo con un ejemplo.
🍎 Ejemplo: array de frutas
Creamos un array de String con 3 frutas:
publicclass Main {publicstaticvoidmain(String[] args){String[] frutas ={"manzana","mango","naranja"};}}
Ahora queremos imprimir cada fruta en una línea.
✅ Opción 1: con for tradicional
publicclass Main {publicstaticvoidmain(String[] args){String[] frutas ={"manzana","mango","naranja"};for(int i =0; i < frutas.length; i++)System.out.println(frutas[i]);}}
📌 Aquí:
i empieza en 0
mientras i < frutas.length seguimos
y i++ incrementa el contador
✨ Opción 2: con for-each
El for-each es más fácil porque:
no declaras contador
no escribes condición
no incrementas nada
Solo dices: “por cada fruta en frutas…”
publicclass Main {publicstaticvoidmain(String[] args){String[] frutas ={"manzana","mango","naranja"};for(String fruta : frutas)System.out.println(fruta);}}
✅ En cada iteración, fruta toma el valor del siguiente elemento del array.
🔁 Comparación: ambos en el mismo programa
publicclass Main {publicstaticvoidmain(String[] args){String[] frutas ={"manzana","mango","naranja"};for(int i =0; i < frutas.length; i++)System.out.println(frutas[i]);for(String fruta : frutas)System.out.println(fruta);}}
📌 Ambos imprimen exactamente lo mismo.
⚠️ Limitación 1: el for-each siempre va hacia adelante
Con for-each no puedes recorrer desde el final al inicio.
Para eso usamos for tradicional:
publicclass Main {publicstaticvoidmain(String[] args){String[] frutas ={"manzana","mango","naranja"};for(int i = frutas.length-1; i >=0; i--){System.out.println(frutas[i]);}}}
✅ Imprime: naranja, mango, manzana.
⚠️ Limitación 2: no tienes el índice
En for-each solo tienes el valor:
for(String fruta : frutas)
No sabes si estás en el índice 0, 1 o 2.
En cambio, con for sí tienes el índice y el valor:
i → índice
frutas[i] → valor
✅ ¿Cuál usar?
Usa for-each cuando solo te importa el valor y vas hacia adelante.