For-each loop

🍉 For-each loop en Java

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:

public class Main {
    public static void main(String[] args) {
        String[] frutas = {"manzana", "mango", "naranja"};
    }
}

Ahora queremos imprimir cada fruta en una línea.

✅ Opción 1: con for tradicional

public class Main {
    public static void main(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…”

public class Main {
    public static void main(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

public class Main {
    public static void main(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:

public class Main {
    public static void main(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.

  • Usa for cuando necesitas:

    • el índice
    • ir al revés
    • o controlar saltos / posiciones específicas