Pętla FOR-EACH

Pętla FOR-EACH służy do iteracji po kolejnych elementach tablicy lub kolekcji. O kolekcjach jeszcze sobie nie mówiliśmy, ale pętla działa dla nich dokładnie tak samo jak dla tablic, na przykładzie których zapoznamy się z tą konstrukcją programistyczną. Ogólna składnia pętli FOR-EACH jest następująca:

for ({deklaracja zmiennej pętli} : {kolekcja lub tablica}) {
  {ciało pętli}
}

Podobnie jak w przypadku instrukcji IF-ELSE i pętli WHILE oraz DO-WHILE, możemy pominąć nawiasy klamrowe obejmujące {ciało pętli}, jeśli {ciało pętli} to pojedyncza instrukcja. Pętla FOR_EACH ma wtedy postać:

for ({deklaracja zmiennej pętli} : {kolekcja lub tablica})
  {instrukcja pętli}

Element {deklaracja zmiennej pętli} to deklaracja zmiennej do której będą przypisywane kolejne elementy tablicy czy pętli. Zmienna ta jest używana wewnątrz pętli jak każda inna zmienna. Deklaracja zmiennej pętli wygląda tak jak deklaracja każdej zmiennej, tj. wpierw piszemy jaki jest typ tej zmiennej a potem jej nazwę. Zwróćmy uwagę, że typ tej zmiennej musi być zgodny z typem elementów tablicy czy kolekcji. W przeciwnym wypadku nie było by możliwe przypisanie do tej zmiennej elementów tej tablicy lub kolekcji.

Opis ogólny opisem, ale jak zwykle najłatwiej jest zrozumieć na przykładzie. Zatem przykładowo, aby wyświetlić kolejne elementy tablicy myArray typu int[], oddzielone od siebie spacjami, napiszemy:

int[] myArray = { 1, 3, 5, 7, 11 };
    
for (int arrayElem : myArray) {
  System.out.print(arrayElem + " ");
}

Przed dwukropkiem w nagłówku pętli deklarujemy więc zmienną arrayElem typu int do której to zmiennej będą przypisywane kolejne elementy tablicy myArray. Po dwukropku umieszczamy dowolne wyrażenie którego wartością jest tablica albo kolekcja. W naszym wypadku jest to po prostu referencja myArray. W ciele pętli wyświetlamy bieżącą wartość zmiennej arrayElem.

Zwróćmy uwagę, że zmienna zadeklarowana w nagłówku pętli (zmienna arrayElem z powyższego przykładu) istnieje tylko w obrębie tej pętli, tj. próba użycia jej za tą pętlą zakończy się błędem. Za pętlą zmienna ta już po prostu nie istnieje.

Subscribe
Powiadom o
guest
3 komentarzy
Oldest
Newest Most Voted
Inline Feedbacks
View all comments