Loops in Java: Ein umfassender Leitfaden
Einleitung
Loops in Java sind essenziell für die Bearbeitung wiederkehrender Aufgaben in der Programmierung. Eine Option ist, denselben oder ähnlichen Code mehrmals zu schreiben, um einen Codeblock wiederholt auszuführen. Diese Herangehensweise ist jedoch weit von einer idealen Lösung entfernt, da sie viel doppelten Code erzeugt, der schwer zu lesen ist. Eine bessere Option ist die Verwendung von Loops.
Was sind Loops in Java?
Loops sind Strukturen zur Steuerung von wiederholten Programmabläufen. Eine typische Schleife besteht aus zwei Teilen. Der eine Teil ist eine boolesche Kontrollbedingung. Der andere Teil ist ein Codeblock, der ausgeführt wird, solange die Bedingung wahr ist oder bis die Bedingung falsch wird. Die boolesche Bedingung wird bei jedem Durchlauf des Codeblocks neu bewertet. Jede Art von Schleife hat unterschiedliche Abbruchkriterien, wie Sie in diesem Tutorial lernen werden.
Arten von Loops in Java
Es gibt zwei Hauptarten von Loops: while
– und for
-Loops. Die Art der Schleife hängt von der Syntax und Logik der Schleife ab. while
-Loops basieren auf einer booleschen Bedingung. Diese Bedingung kann allgemein sein, und solange sie wahr ist, wird der Codeblock wiederholt ausgeführt. for
-Loops führen ebenfalls einen Codeblock wiederholt aus, aber die Loopsbedingung hängt typischerweise von der Erhöhung oder Verringerung einer ganzzahligen Variablen ab. Wenn diese Variable einen bestimmten Zielwert erreicht, wird die Schleife beendet.
Überblick über das Tutorial: Loops in Java
In diesem Tutorial werden Sie while
– und for
-Loops verwenden, um wiederholte Aufgaben zu erstellen, und Sie lernen die Vorteile und Nachteile jeder einzelnen kennen.
Voraussetzungen für Loops in Java
Um diesem Tutorial zu folgen, benötigen Sie:
- Eine Umgebung, in der Sie Java-Programme ausführen können, um den Beispielen zu folgen. Um dies auf Ihrem lokalen Computer einzurichten, benötigen Sie Folgendes:
- Java (Version 11 oder höher), das auf Ihrem Computer installiert ist, mit dem Compiler, der durch das Java Development Kit (JDK) bereitgestellt wird. Für Ubuntu und Debian folgen Sie den Schritten in Option 1 in unserem Tutorial Wie man Java mit Apt auf Ubuntu 22.04 installiert. Für andere Betriebssysteme, einschließlich Mac und Windows, folgen Sie den Download-Optionen für die Java-Installation.
- Um die Codebeispiele zu kompilieren und auszuführen, verwendet dieses Tutorial die Java Shell, auch bekannt als JShell, eine Read-Evaluate-Print-Loop (REPL), die über die Befehlszeile ausgeführt wird. Um mit JShell zu beginnen, lesen Sie unseren Leitfaden Einführung in JShell.
- Grundkenntnisse in Java und objektorientierter Programmierung, die Sie in unserem Tutorial Wie man sein erstes Programm in Java schreibt finden können.
- Ein Verständnis der Java-Datentypen, das in unserem Tutorial Verständnis von Datentypen in Java behandelt wird.
while
-Loops in Java
while
-Loops in Java überprüfen eine boolesche Bedingung, z. B. ob zwei Variablen gleich sind oder Objekte miteinander in Beziehung stehen. Jede boolesche Aussage funktioniert, was while
-Loops in Java mächtig und weit verbreitet macht. In diesem Abschnitt erstellen Sie Ihre erste Java-Schleife mit dem Schlüsselwort while
. Eine Variable x
beginnt bei 3, und solange x
größer als 0 ist, wird die Schleife x
drucken und dekrementieren, wodurch sichergestellt wird, dass die Schleife nach einigen Ausführungen endet. Ohne das Dekrement wäre die Schleife unendlich. Um mitzumachen, öffnen Sie JShell mit dem Befehl jshell
und beenden Sie ihn mit /exit
.
Um diesen Code zu testen, fügen Sie die folgenden Zeilen in JShell ein:
int x = 3;
while (x > 0) {
System.out.println("x ist " + x--);
}
In der ersten Zeile definieren Sie die Variable x
.
Die Schleife beginnt in Zeile 2 mit dem Schlüsselwort while
. Die Bedingung (x > 0)
steuert die Schleife. Sie überprüft, ob x
größer als 0 ist. Danach folgt die öffnende geschweifte Klammer {
, die den Anfang des Codeblocks markiert. Dieser Codeblock wird wiederholt ausgeführt, solange die Bedingung x > 0
wahr ist.
Im Codeblock gibt die Anweisung System.out.println("x ist " + x--);
in Zeile 3 den aktuellen Wert von x
mit der Methode println()
aus. (Mehr zur Methode System.out.println
finden Sie in unserem Tutorial Wie man sein erstes Programm in Java schreibt.) Innerhalb des Arguments für println()
wird x
mit dem Code x--
postdekrementiert. Bei jeder Ausführung wird x
um 1 verringert.
Der Codeblock endet in der letzten Zeile mit der schließenden geschweiften Klammer }
. Dies ist auch das Ende der Schleife.
Wenn Sie diesen Code in JShell ausführen, wird die folgende Ausgabe angezeigt:
Ausgabe
x => 3
x ist 3
x ist 2
x ist 1
Die erste Zeile bestätigt, dass x
den Wert 3 erhalten hat. In den folgenden Zeilen wird der Wert von x
dreimal ausgegeben, wobei er jedes Mal um 1 abnimmt. Es gibt nur drei Iterationen, in denen x
die Werte 3, 2 und 1 hat. Die Schleife wird beendet, wenn x
0 erreicht, da die Bedingung x > 0
nicht mehr erfüllt ist. An diesem Punkt endet die Schleife, und es wird nichts mehr ausgegeben.
…
do-while
-Loops in Java
Die do-while
-Schleife ist weniger beliebt als die while
-Schleife, wird aber immer noch häufig verwendet. Eine do-while
-Schleife ähnelt einer while
-Schleife, unterscheidet sich jedoch in einem entscheidenden Punkt: Der Codeblock wird zuerst ausgeführt und erst danach wird die Loopbedingung überprüft.
Zur Erinnerung: while
-Loops in Java prüfen zuerst die Bedingung und führen den Codeblock möglicherweise nie aus, wenn die Bedingung nicht erfüllt ist. In do-while
-Loops wird der Codeblock jedoch mindestens einmal ausgeführt, bevor die Kontrollbedingung der Schleife ausgewertet wird. Wenn die Bedingung wahr ist, führt die Schleife weitere Iterationen durch, bis sie nicht mehr erfüllt ist. do-while
-Loops sind nützlich in Fällen wie dem Stellen einer Frage, die nur dann beendet wird, wenn die richtige Antwort gegeben wird.
In diesem Abschnitt erstellen Sie eine do-while
-Schleife, die der while
-Schleife im vorherigen Abschnitt ähnelt. Die int-Variable wird x
genannt und hat einen Anfangswert von 3. Dieses Mal ist jedoch die Bedingung umgekehrt (x < 0
), und der Codeblock wird vor der Auswertung der Bedingung ausgeführt.
Öffnen Sie JShell und fügen Sie die folgende do-while
-Schleife hinzu:
int x = 3;
do {
System.out.println("x ist " + x--);
} while (x < 0);
Der Code hat einige Ähnlichkeiten mit der while
-Schleife aus dem vorherigen Abschnitt. Zuerst gibt es die Zuweisung der Variable x
, die erneut den Wert 3 hat.
In Zeile 2 beginnt die Schleife mit dem Schlüsselwort do
und der öffnenden Klammer {
für den Codeblock. In Zeile 3 wird der Wert von x
mit der Methode println()
ausgegeben. Mit der Methode println()
wird auch der Wert von x
durch den Postdekrement-Operator --
verringert.
Die schließende Klammer }
für den Codeblock befindet sich in der letzten Zeile, gefolgt vom Schlüsselwort while
und der Bedingung (x < 0)
. Dies ist der Teil, der sich von der vorherigen while
-Schleife unterscheidet. Hier ist die Bedingung umgekehrt: x
sollte kleiner als 0 sein. Im vorherigen Beispiel musste x
größer als 0 sein. Diese Änderung zeigt, dass der Codeblock ausgeführt wird, auch wenn die Bedingung nie erfüllt ist.
Wenn Sie diesen Code in JShell ausführen, wird die folgende Ausgabe angezeigt:
Ausgabe
x => 3
x ist 3
Die erste Zeile bestätigt, dass der Wert von x
3 ist. Die zweite Zeile druckt x ist 3
. Dies ist die Besonderheit der do-while
-Schleife: Auch wenn die Bedingung (x < 0
) nicht erfüllt ist, wird der Codeblock mindestens einmal ausgeführt. Diese bedingungslose Ausführung ist möglicherweise nicht immer gewünscht, weshalb man beim Einsatz von do-while
-Loops vorsichtig sein sollte. Aufgrund dieser Besonderheit werden do-while
-Loops weniger häufig verwendet.
for
-Loops in Java
Eine alternative Loopstruktur ist die for
-Schleife. Sie wird ebenfalls verwendet, um einen Codeblock wiederholt auszuführen, jedoch bietet sie mehr Möglichkeiten als eine while
-Schleife. In der Kontrollbedingung der Schleife können Sie eine Initialisierung, eine Bedingung und eine Iteration angeben. Dies macht die for
-Schleife besonders effektiv für Zählloops.
for (int i = 0; i < 3; i++) {
System.out.println("i ist " + i);
}
Die Schleife beginnt mit i = 0
, läuft solange die Bedingung i < 3
wahr ist, und erhöht i
nach jedem Durchlauf um 1. Dieses Beispiel gibt die Werte von i
(0, 1, 2) aus.
Die for
-Schleife ist kompakter und besser geeignet, wenn Sie die genaue Anzahl der Iterationen kennen, da die Initialisierung, Bedingung und Iteration an einem Ort definiert sind. Dies macht den Code leichter verständlich und wartbar.
Fazit
Loops in Java sind ein mächtiges Werkzeug in, um repetitive Aufgaben effizient zu lösen. Mit den richtigen Loops können Sie klare und leicht wartbare Codes schreiben, die sowohl flexibel als auch leistungsfähig sind. Nutzen Sie while
, do-while
und for
-Loops je nach Anwendungsfall, um das Beste aus Ihrer Programmierung herauszuholen.