Programmieren

For-Each-Schleifen

Schleifen werden häufig dazu benutzt, die Daten eines Arrays oder einer ArrayList zu durchlaufen, oder aber einer sonstigen Daten­struktur. Sofern nur lesend auf diese Daten zugegriffen wird, eignet sich hierfür die For-Each-Schleife.

Array mit For-Each-Schleife durchlaufen

Standardmäßig durchlaufen Sie ein Array mit einer For-Schleife, etwa um alle Einträge auf dem Bildschirm auszugeben. Das Array lautet beispiels­weise

int[] a={2, 3, 5, 7, 11, 13};

Die For-Schleife lautet dann wie folgt.

for (int i=0; i<6; i++)
    System.out.println(a[i]);

Mithilfe einer For-Each-Schleife durchlaufen Sie das Array folgender­maßen:

for (int x : a)    // for each x in a
    System.out.println(x);

Bei der For-Each-Schleife können Sie nicht auf die Index-Positionen der Einträge zugreifen, und Sie können nur lesend auf die Einträge zugreifen.

Sehr elegant lassen sich For-Each-Schleifen schachteln, um mehrdimensionale Arrays zu durchlaufen, beispiels­weise wenn Sie ein mehrdimensionales Array ausgeben möchten.

Andere Datenstrukturen durchlaufen

In gleicher Weise lässt sich beispiels­weise eine ArrayList mithilfe einer For-Each-Schleife durchlaufen.

Grundsätzlich lässt sich auch jede beliebige andere Daten­struktur in dieser Weise durchlaufen. Die Bedingung ist nur, dass diese Daten­struktur das Interface Iterable implementiert. Hierzu muss eine Methode iterator vorhanden sein, die einen Iterator zurückgibt, mithilfe dessen die Elemente der Daten­struktur durchlaufen werden. Hier geraten Sie schon in den Bereich der fortgeschrittenen Pro­grammierung; lesen Sie hierzu, wie Sie einen Iterator schreiben.

For-Each-Schleife für Listen

Mit einer normalen For-Schleife durchlaufen Sie einen Zahlen­bereich von lo bis hi in bestimmter Schrittweite s:

for (int i=lo; i<=hi; i+=s)
    System.out.println(i);   

Gelegentlich aber kommt es vor, dass Sie bestimmte unregelmäßig angeordnete Zahlen durchlaufen wollen. Beispiels­weise wollen Sie für die ersten sechs Primzahlen eine bestimmte Berechnung durchführen. Sie können natürlich wie oben gesehen ein Array mit diesen Zahlen anlegen und dieses dann durchlaufen. Die einfachste Möglichkeit, ohne dies zuvor zu tun, lautet folgender­maßen, hier nur um die Zahlen auszugeben:

for (int x : Arrays.asList(2, 3, 5, 7, 11, 13))
    System.out.println(x);   

Vorher importieren Sie mit import java.util.Arrays die Standard­bibliothek Arrays.

 

Weiter mit:   [Entwurf von Programmschleifen]   oder   [up]

 


H.W. Lang   mail@hwlang.de   Impressum   Datenschutz
Diese Webseiten sind während meiner Lehrtätigkeit an der Hochschule Flensburg entstanden