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.

3
Dodaj komentarz

avatar
3 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
Doradca GSM Recent comment authors
  Subscribe  
najnowszy najstarszy oceniany
Powiadom o