while-Schleife
Wiederholungen (Schleifen)
Wenn man Anweisungen in ähnlicher Weise mehrfach wiederholen möchte, schreibt man sie nicht mehrfach hintereinander ins Programm, sondern nutzt Wiederholungen oder auch Schleifen.
A. while-Schleife (Wiederholung mit Anfangsbedingung)
Beispiel 1
Wir schreiben den Text „Hallo Welt!“ 10-mal untereinander in die Ausgabe. Zuerst möchte ich Euch zeigen, wie man es nicht machen sollte:
Viel besser ist es, den Computer anzuweisen, die Ausgabe von „Hallo Welt!“ 10-mal zu wiederholen. Das geht so:
Schalte rechts auf den „Variablen“-Tab und führe dann das Programm in Einzelschritten aus („Step over“). Beobachte genau den Wert der Variable n!
Wichtig: Übersetze "while" mit "solange" und NICHT mit "bis"!!!
while (zaehler < 10) versteht man als "solange n kleiner 10 ist"
Erklärung der einzelnen Anweisungen
int zaehler = 1;
Die Variable zaehler benutzen wir, um zu zählen, wie oft wir schon wiederholt haben. zaehler = 1 bedeutet, dass wir im 1. Wiederholungsdurchgang sind.
Die beiden geschweiften Klammern {} kennzeichnen den Beginn und das Ende eines Blockes bzw. eines Abschnitts. Alle Anweisungen innerhalb dieser geschweiften Klammern gehören zusammen. Solange die Bedingung wahr ist, werden also alle diese Befehle in dem Block ausgeführt.
- while (zaehler <= 10) {
- println("Hallo Welt!");
- zaehler = zaehler + 1;
- }
Die Anweisung while (zaehler <= 10) bedeutet: Wiederhole die Anweisungen zwischen den nachfolgenden {}, solange n kleiner oder gleich 10 ist. Damit die Anweisungen nicht unendlich oft wiederholt werden, müssen wir dafür sorgen, dass die Aussage zaehler <= 10 irgendwann nicht mehr zutrifft. Deshalb erhöhen wir am Ende der des wiederholten Blocks zaehler um 1, indem wir schreiben: zaehler = zaehler + 1;.
- println("Fertig!", Color.green);
Sobald die Bedingung hinter while nicht mehr zutrifft, werden die Anweisungen in den zwei geschweiften Klammern {} übersprungen und der Computer fährt mit den Anweisungen fort, die hinter den {} stehen. In diesem Fall gibt er „Fertig!“ aus.
Mit Hilfe der while-Schleife können wir eine Sequenz von Anweisungen öfters wiederholen lassen.
while (Bedingung) {
// Anweisungen
}
Die Anweisungen werden wiederholt, solange die Bedingung zutrifft, also den Wert true hat.
Beachte:
Schon vor der ersten Ausführung der Anweisungen wird überprüft, ob die Bedingung zutrifft. Hat sie schon zu Beginn den Wert false, so werden die Anweisungen in den {} gar nicht ausgeführt.
Kleine Aufgabe
Ändere das Programm oben so ab, dass es 8-mal Deinen Namen in Deiner Lieblingsfarbe ausgibt!
Beispiel 2: Varianten...
Eine while-Schleife kann nicht nur immer wieder exakt dasselbe wiederholen. Man kann beispielsweise die Zählvariable benutzen, um auszugeben, wie oft schon wiederholt wurde:
Die drei print-Anweisungen kann man übrigens auch zu einer einzigen Anweisung zusammenfassen:
println("Das ist der " + z + "-te Wiederholungsschritt");
Addieren von Zeichenketten
In Java bewirkt der Operator + bei Zeichenketten, dass sie hintereinandergehängt („konkateniert“) werden. Der Term „Das ist “ + „Text“ hat daher den Wert „Das ist Text“.
Wird eine Variable vom Datentyp int zu einer Zeichenkette addiert, so wird die Variable zuerst in eine Zeichenkette umgewandelt und anschließend werden die beiden Zeichenketten hintereinandergehängt.
int z = 12;
println("Das ist die Zahl " + z);
gibt also aus: Das ist die Zahl 12.
Beispiel 3: Zweierpotenzen
Oft ist es nützlich, noch zusätzliche Variablen zu deklarieren, die bei jedem Wiederholungsschritt geändert werden. Wir schreiben ein Programm, das die ersten 10 Zweierpotenzen ausgibt, also 2^0 = 1, 2^1 = 2, 2^2 = 4, 2^3 = 8 usw.
Schalte rechts auf den „Variablen“-Tab und führe dann das Programm in Einzelschritten aus („Step over“). Beobachte genau den Wert der Variablen i und zp!
Wenn das Programm pausiert (etwa nach Klick auf den Pause-Button oder bei der Ausführung in Einzelschritten) kannst Du den Wert von Variablen sehen, indem Du im Programmtext mit der Maus auf die Variable fährst und etwas wartest. Es öffnet sich ein Tooltip mit dem Wert der Variable.
Übung zur while-Schleife
Aufgaben zur while-Schleife
Jetzt bis Du dran. Hier findest Du vier Aufgaben zur while-Schleife mit ansteigendem Schwierigkeitsgrad. Los geht's!