for

Syntax

for (Initialisierung; Bedinung; Modifikation) Anweisung;
            

Die for-Schleifenanweisung erwartet innerhalb ihrer Klammer 3 Teile:

  • Initialisierung
  • Bedingung
  • Modifikation

Zunächst wird bei der for-Schleife der Initialisierungsteil einmalig ausgeführt. Im Initialisierungsteil können auch Variablen initialisiert werden, welche innerhalb der Schleife verwendet werden können und dort auch ihren Gültigkeitsbereich haben.

Nach dem Initialisierungsteil wird der Bedingungsteil ausgeführt. Das Ergebnis des dort stehenden Ausdrucks muss boolean sein. Ist das Ergebnis true, wird der nächste (bzw. erste) Schleifendurchlauf gestartet. Ein false als Ergebnis führt dazu, dass mit der Anweisung, die der Schleife folgt, fortgefahren wird. Es ist auch möglich, eine Methode zur Auswertung der Bedingung aufzurufen.

Wurde der Schleifenrumpf ausgeführt, wird der Modifikationsteil ausgeführt, bevor wieder der Bedingungsteil der Schleifenanweisung aufgerufen wird. Der Modifikationsteil wird meistens dazu verwendet, Zählvariablen zu modifizieren.

Sowohl der Initialisierungsteil, als auch der Modifikationsteil können mehrere Anweisungen enthalten, die durch ein Komma voneinander getrennt werden.

Alle drei Teile der for-Schleifenanweisung sind optional. Wird der Initialisierungsteil bzw. der Modifikationsteil weggelassen, werden entsprechend keine Anweisungen dort ausgeführt. Fehlt der Bedingungsteil, wird an dieser Stelle immer true angenommen. Fehlen Initialisierungs- und Modifikationsteil, entspricht die for-Schleife, dem Verhalten nach, der while-Schleife.

Nachfolgend ein typisches Beispiel für die Anwendung der for-Schleife.

int counter = 0;
for (int i = 0; i < 10; ++i){
  // do something with i
  counter += i;
}
itmapa.de - X2H V 0.20

while

Syntax
while (Bedingung) Anweisung;
            

Bei der while-Schleife wird zunächst geprüft, ob die Bedingung in den Klammern wahr ist, bevor die Schleife ausgeführt wird. Ist der Wert der Bedingung vor dem ersten Durchlauf false, wird die Schleife nicht durchlaufen. Wurde die Schleife betreten, wird diese solange wiederholt, bis die Bedingung in den runden Klammern als Ergebnis den Wert false liefert.

Der nachfolgende Quelltextausschnitt zeigt beispielhaft eine Verwendung der while-Schleife:

double d = 1.1;
while (d < 1000.0){
  d = 3.0*d;
}
itmapa.de - X2H V 0.20

do

Syntax
do Anweisung while(Bedingung);
            

Im Gegensatz zur while-Schleife wird die do-Schleife mindestens einmal durchlaufen. Bei der do-Schleife wird am Ende geprüft, ob die Schleife verlassen oder neu ausgeführt wird.

Nachfolgend ein Quelltextausschnitt, der beispielhaft die Verwendung der do-Schleife zeigt:

double d = 1.0;
do{
  d = 3.0*d;
}while(d < 1000.0);
itmapa.de - X2H V 0.20

foreach

Syntax
for (Typ bezeichner : quelle) Anweisung;
            

Die foreach-Schleife dient zum einfachen durchlaufen von Arrays und Collections. Innerhalb der Klammer wird zunächst der zu durchlaufende Typ angegeben worauf der Bezeichner folgt, unter dem das Exemplar des Typs innerhalb der Schleife angesprochen werden kann. Nach dem Doppelpunkt wird das Array bzw. die Collection angegeben, welche die zu durchlaufenden Exemplare enthält.

Nachfolgend ein Beispiel zur Verwendung der foreach-Schleife:

public class ForEachExample {
  public static void main(String[] args){
    String[] sa = new String[4];
    sa[0] = "Hi 1";
    sa[1] = "Ho 2";
    sa[2] = "Ha 3";
    sa[3] = "He 4";
    
    for (String s : sa){
      System.out.println(s);
    }    
  }
}
itmapa.de - X2H V 0.20

Der Ablauf des Programmes bewirkt folgende Ausgabe auf der Console:

Hi 1
Ho 2
Ha 3
He 4
            

continue und break

Die Anweisungen continue und break dienen dazu, den nächsten Schleifendurchlauf zu starten bzw. die Schleife zu verlassen .

continue dient zum starten des nächsten Schleifendurchlauf
break dient zum verlassen der aktuellen Schleife

Das nächste Beispiel zeigt einen Einsatz fü continue und break

public class ContinueAndBreak {
  
  public static void main(String[] args){
    for (int i = 0; i < 10; ++i){
      if (i == 7) break;
      if (i % 2 == 0) continue;
      System.out.println(i);
    }
  }
}
itmapa.de - X2H V 0.20

Als Ergebnis des Programmablaufs erscheint folgende Ausgabe auf der Systemausgabe:

1
3
5
            

In der gezeigten "einfachen" Form beziehen sich continue und break immer auf die innerste Schleife, in der sie sich befinden. Es ist aber auch möglich, dass die Anweisungen sich auf äußere Schleifen, if-Anweisungen bzw. Blockanweisungen beziehen, sofern Sie von diesen umgeben sind.

Um dies zu erreichen, muss dem entsprechenden Sprungblock ein "Label" zugeordnet werden, welches bem entsprechenden continue und break als Sprungziel angegeben wird.