Java - For-each petlja


U Javi, dok radimo sa nizovima i kolekcijama, možemo koristiti poboljšani oblik for petlje. Poznat je i kao for-each petlja. To je zato što se petlja ponavlja kroz svaki element nizova ili kolekcija. Prije nego što saznate o for-each petlji, obavezno pogledajte:



Razlika između for petlje i for-each petlje

Da bismo znali zašto je for-each petlja preferisana petlja tokom rada s nizovima, pogledajmo sljedeći primjer. Primjer pokazuje kako možemo ispisati elemente niza koristeći standardnu for petlju.

class ForLoop {
    public static void main(String[] args) {
      
        char[] vowels = {'a', 'e', 'i', 'o', 'u'};

        for (int i = 0; i < vowels.length; ++ i) {
            System.out.println(vowels[i]);
        }
    }
}

Sada ćemo izvesti isti zadatak koristeći for-each petlju .

class AssignmentOperator {
   public static void main(String[] args) {
      
      char[] vowels = {'a', 'e', 'i', 'o', 'u'};
      // foreach petlja
      for (char item: vowels) {
         System.out.println(item);
      }
   }
}

Ovdje možemo vidjeti da je izlaz oba programa isti. Kad pažljivo analiziramo oba programa, možemo primijetiti da je for-each petlja jednostavnija za pisanje i čini naš kod čitljivijim. To je razlog zašto se naziva pojednostavljena for petlja.



Java for-each petlja

Pogledajmo prvo sintaksu for-each petlje:

for(data_type item : collections) {
    ...
}

Ovdje je:

  • collection - kolekcija ili niz koji morate pregledavati.
  • item - pojedinačni predmet iz kolekcije.


Kako radi for-each petlja?

Evo kako for-each petlja funkcioniše u Javi.

  • iterates - ponavlja kroz svaku stavku u zadanim zbirkama ili nizovima (kolekcijama),
  • stores - pohranjuje svaki predmet u varijablu (stavka) i
  • executes - izvršava tijelo petlje.

Primjer: for-each petlje

Program u nastavku izračunava zbroj svih elemenata niza.

class EnhancedForLoop {
    public static void main(String[] args) {
      
        int[] numbers = {3, 4, 5, -5, 0, 12};
        int sum = 0;
      
        for (int number: numbers) {
            sum += number;
        }
      
        System.out.println("Sum = " + sum);
    }
}

U gore navedenom programu, izvršavanje for-each izgleda ovako:

Iteracija Vrijednost
1 number = 3 and sum = 0 + 3 = 3
2 number = 4 and sum = 3 + 4 = 7
3 number = 5 and sum = 7 + 5 = 12
4 number = -5 and sum = 12 + (-5) = 7
5 number = 0 and sum = 7 + 0 = 7
6 number = 12 and sum = 7 + 12 = 19