Jason. Cała informatyka w jednym miejscu!

Odejdźmy teraz od złożonych rzeczy i skupmy się na czymś prostszym. Taka pętla rozszerzona w języku Java na przykład, która nazywana jest również pętlą "foreach". "Debiut" miał miejsce właśnie w Javie i pozwala na wygodniejszy sposób obsługi wszelkich tablic i kolekcji, czyli kontenerów przechowujących wiele danych w jednym miejscu. Prosimy do środeczka :)!

PĘTLA ROZSZERZONA W JĘZYKU JAVA KONTRA "ZWYKŁE FOR"

Pętla "foreach" (ang. dla każdego) polega na obsłudze danej struktury przechowującej w sobie wiele elementów (tablica lub kolekcja) bez użycia zmiennej iteracyjnej. Oprócz tego, skraca zapisy przy uzyskiwaniu dostępu do pojedynczego argumentu, gdyż na miejsce zmiennej liczbowej wchodzi lokalna zmienna referencyjna reprezentująca każdy pojedynczy element struktury. Przestrzegam przed jednym "ale". W Javie nie istnieje formalnie pętla "foreach" :O! Taką nazwę wprowadzono dopiero w języku C# i tam rzeczywiście występuje takie słowo kluczowe. Ale tutaj jedno słowo "for" pasuje i do podstawowego, i do tego typu pętli :O!!! Żeby jakoś odróżniać słownie te pętle między sobą, korzysta się ze stwierdzenia pętla rozszerzona w języku Java i to będzie oznaczać użycie "foreach". To tak na marginesie, żeby służyło jedynie rozwianiu wątpliwości spowodowanej podobieństwem nazw ;).

Pętla rozszerzona wygląda w taki sposób:

for ([typ elementu] element : [tablica lub kolekcja]) {
	// instrukcje
}

Przejdźmy teraz do kodu korzystającego z tej odmiany pętli. Oto użycie kolekcji "ArrayList" przechowującej liczby zmiennoprzecinkowe, tak dla małej odmiany ;). Przeanalizujcie to sobie na spokojnie:

KLASA "MAIN"

public class Main {
	public static void main(String[] args) {
		new ExtendedLoop();
	}
}

KLASA "EXTENDEDLOOP"

import java .util.ArrayList;

public class ExtendedLoop {
	private final ArrayList<Double> numbers = new ArrayList<>();

	public ExtendedLoop() {
		addNumbers();
		sumNumbers();
	}

	private void addNumbers() {
		numbers.add(69.8);
		numbers.add(18.65);
		numbers.add(32.666);
	}

	private void sumNumbers() {
		double total = 0.0;

		for (Double n : numbers) {
			total += n;
		}

		System.out.println("Suma liczb wynosi: " + total);
	}
}

Domyślnie, w tradycyjnej pętli "for" musielibyśmy podać zmienną iteracyjną, wyznaczyć granicę za pomocą stałej "length" (w przypadku tablicy) albo metody "size" (w przypadku kolekcji) i poprzez zaangażowanie jeszcze klasę "get", wydobyć konkretny argument. W sytuacjach, gdy nie jest nam potrzebny indeks ORAZ chcemy iterować po KAŻDYM z elementów bez wyjątku, pętla "foreach" okaże się dużo czytelniejsza, prostsza i wygodniejsza :D.

Pętla "foreach" w języku Java

Pętla rozszerzona w języku Java ("foreach") umożliwia skrócenie zapisu dotyczącego uzyskiwania dostępu do pojedynczego argumentu tablicy / kolekcji, który w tradycyjnej pętli "for" jest nieunikniony.


Moim zdaniem, więcej komentarzy nie potrzeba na taki lekki temat ;).

NASTĘPNY ARTYKUŁ: Rzutowanie typu w języku Java. Wymuszanie typu danych

PODOBNE ARTYKUŁY