1. Einführung
Stellen Sie sich vor, Sie haben eine Aufgabe: zehnmal „Hallo!“ auf dem Bildschirm ausgeben. Man kann natürlich zehn Zeilen mit System.out.println("Hallo!"); schreiben – aber Sie kennen inzwischen die while-Schleife, also schaffen Sie das problemlos.
Es gibt aber noch eine weitere Schleife – for, die die gewünschte Aktion die erforderliche Anzahl von Malen wiederholt. Und sie kann selbst zählen!
Ein typisches Beispiel:
for (int i = 0; i < 10; i++)
{
System.out.println("Hallo!");
}
Was macht dieser Code? Er gibt das Wort „Hallo!“ genau 10-mal aus. Ganz ohne Copy & Paste und ohne Handgelenkschmerzen.
2. Syntax der for-Schleife
Die for-Schleife besteht aus drei Hauptteilen, die in runden Klammern nach dem Schlüsselwort for stehen:
for (Initialisierung; Bedingung; Änderung)
{
// Schleifenrumpf
}
for-Schleife
Schauen wir uns jedes Element im Detail an:
- Initialisierung – meist wird eine Zählvariable erzeugt, mit der die Wiederholungen gezählt werden (int i = 0).
- Bedingung – die Prüfung vor jeder Iteration. Ist sie wahr, wird der Schleifenrumpf ausgeführt. Ist sie falsch, endet die Schleife. Zum Beispiel i < 10.
- Änderung – ein Operator, der nach jeder Iteration ausgeführt wird. Meist wird der Zähler erhöht oder verringert (i++).
Ein Schaubild dazu:
3. Vergleich von for und while
Vielleicht wird es verständlicher, wenn ich sage, dass for einfach nur eine andere Schreibweise der while-Schleife ist.
So sah die while-Schleife aus:
int i = 0; // Initialisierung der Variablen für die Schleife
while(i<10) // Prüfung der Fortsetzungsbedingung der Schleife
{
System.out.println(i); // Nützliche Aktion (Schleifenrumpf)
i++; // Erhöhen des Zählers
}
Wir können sie als for-Schleife formulieren, indem wir alle Aktionen, die die Logik der Schleife steuern, verschieben:
for (int i = 1; i <= 10; i++) // Initialisierung; Bedingungsprüfung; Erhöhen des Zählers
{
System.out.println(i); // Nützliche Aktion (Schleifenrumpf)
}
Schritte beider Schleifen:
- Die Initialisierung int i = 0; wird 1-mal vor der Schleife ausgeführt.
- Dann wird die Bedingung i <= 10 geprüft.
- Dann die nützliche Aktion der Schleife System.out.println(i);
- Danach Erhöhen des Zählers i++
- Dann geht es zurück zu Schritt 2.
4. Beispiele für die Verwendung der for-Schleife
Das einfachste Beispiel
Geben wir die Zahlen von 1 bis 5 aus:
for (int i = 1; i <= 5; i++)
{
System.out.println(i);
}
Ausgabe:
1
2
3
4
5
Hinweis: Wenn Sie i < 5 geschrieben hätten, wäre die letzte Ausgabe 4.
Countdown
Wollen Sie sich wie ein Kosmonaut fühlen? Machen wir einen Countdown!
for (int i = 5; i > 0; i--)
{
System.out.println(i);
}
System.out.println("Los geht's!");
Ausgabe:
5
4
3
2
1
Los geht's!
Schrittweite der Schleife ungleich 1
Den Zähler kann man nicht nur um 1, sondern um jede beliebige Zahl verändern:
for (int i = 0; i <= 10; i += 2)
{
System.out.println(i);
}
// Gibt aus: 0 2 4 6 8 10
5. Varianten der for-Schleife
Mehrere Variablen in der Schleife
Manchmal ist es praktisch, zwei Variablen gleichzeitig zu verfolgen. Zum Beispiel zählen wir von links nach rechts und von rechts nach links:
for (int left = 1, right = 10; left <= 10; left++, right--)
{
System.out.println(left + " " + right);
}
Ausgabe:
1 10
2 9
3 8
...
10 1
Endlose for-Schleife
Wenn es besonders hartnäckig ist (zum Beispiel Ihr Projekt – ein Perpetuum mobile in der IT), kann man eine „endlose“ for-Schleife schreiben:
for (;;) // weder Initialisierung, noch Bedingung, noch Änderung
{
System.out.println("Arbeiten, arbeiten und noch einmal arbeiten!");
}
Achtung: Eine solche Schleife endet nur, wenn im Rumpf ein break, return oder throw steht. Verwenden Sie sie nicht ohne triftigen Grund, sonst wecken Sie womöglich einen uralten Dämon – „Der Prozess reagiert nicht“.
GO TO FULL VERSION