while- und do-while-Schleife - Grundlagen Java

Schleifen in Java

Eine Schleife ist eine Kontrollstruktur, mit der Anweisungen wiederholt ausgeführt werden können.


Arten von Schleifen

Schleifen gehören zur Gruppe der Kontrollstrukturen. Diese geben vor, in welcher Reihenfolge der Code ausgeführt werden soll. Sie bestimmen also den Programmablauf.

Schleifen werden dann verwendet, wenn bestimmte Anweisungen wiederholt ausgeführt werden sollen.

Stell dir vor, du hast Hunger. Da dein Hunger nur nach und nach gestillt wird, musst du mehrere Pizzastücke essen, um satt zu werden.

Diese Anweisung (Pizzastück essen) muss also wiederholt werden, bis eine bestimmte Abbruchbedingung, hier satt sein, erreicht wird.

Solche Prozesse können in Java mit Schleifen implementiert werden.

Dabei gibt es zwei verschiedene Arten von Schleifen: die abweisenden und die annehmenden Schleifen.

Abweisende Schleifen

Bei abweisenden Schleifen wird zuerst eine Bedingung überprüft. Dadurch werden nur dann die Anweisungen ausgeführt, wenn die Bedingung zu true ausgewertet wird.

Zu den abweisenden Schleifen gehören:

  • while-Schlife
  • for-Schleife
  • verschachtelte for-Schleife
  • erweiterte for-Schleife

while-Schleife

Die while-Schleife ist folgendermaßen aufgebaut:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Die while-Schleife besteht aus einem Kopf und einem Rumpf. Im Kopf steht das Keyword while, gefolgt von runden Klammern, in denen eine Bedingung steht. Wird diese zu true ausgewertet, werden die Anweisungen im Rumpf der Schleife ausgeführt.

Wenn die Bedingung zu false ausgewertet wird, wird die gesamte Schleife übersprungen.

Schau dir den Code folgender while-Schleife an:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Da a = 4 ist, wird die Bedingung a > 0 zu true ausgewertet. Die Anweisungen im Rumpf werden also ausgeführt. Hier ist es das Reduzieren von a um 1.

Sobald die Anweisung ausgeführt wurde, wird die Bedingung wieder geprüft. Wenn sie zu true ausgewertet wird, wird wieder der Rumpf betreten und die Anweisung ausgeführt. Das geht so lange weiter, bis die Bedingung nicht mehr erfüllt wird.

Da a nach jeder Überprüfung der Bedingung um 1 verringert wird, wird die Bedingung fünfmal geprüft. Beim fünften Mal ist a jedoch 0, weswegen die Bedingung zu false ausgewertet wird. Dadurch wird die while-Schleife verlassen.

Doch was würde passieren, wenn a nicht um 1 verringert wird, sondern zum Beispiel immer nur „Hello World“ auf die Konsole ausgegeben wird?

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Da a immer den Wert 4 hat, wird die Bedingung der Schleife immer zu true ausgewertet. Die Schleife wird also endlos oft ausgeführt.

Eine solche Endlosschleife kann schnell mal passieren, daher immer darauf achten, dass es eine Abbruchbedingung gibt, die auch eintritt!

for-Schleife

Auch die for-Schleife gehört zu den abweisenden Schleifen. Sie ist ähnlich zu der while-Schleife:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Diese Schleifen-Art besteht aus dem Keyword for, gefolgt von runden Klammern, in denen die Zählvariable, die Bedingung und die Schrittweite stehen. Diese Parameter werden dabei mit einem Semikolon voneinander getrennt.

Die Zählvariable wird verwendet, damit die for-Schleife eine bestimmte Anzahl durchlaufen wird. Für die Zählvariablen werden häufig i, jund k verwendet.

Die Bedingung muss wieder zu true oder false auswertbar sein. Sie bezieht sich dabei auf die Zählvariable.

Die Schrittweite verringert oder erhöht die Zählvariable um eine gewisse Zahl, damit irgendwann die Bedingung zu false ausgewertet wird und es damit zu keiner Endlosschleife kommen kann.

Nach den runden Klammern folgen wieder geschweifte Klammern, die die Anweisungen der Schleife enthalten.

Schau dir wieder folgenden Code als Beispiel an:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

In dieser for-Schleife wird eine Zählvariable i deklariert und initialisiert.

Danach wird die Bedingung aufgestellt. Hier ist die Bedingung, dass i kleiner sein muss als a. Da diese beim ersten Betreten der Schleife zu true ausgewertet wird, werden die Anweisungen ausgeführt. a wird also um 1 verringert. Erst danach wird die Zählvariable durch i++ um 1 erhöht.

Nun wird wieder die Bedingung der for-Schleife überprüft und die Anweisung so lange ausgeführt, bis i größer oder gleich a ist. Das ist nach fünf Schleifendurchläufen der Fall, da im fünften Durchlauf a auf 5 verringert und danach i auf 5 erhöht wird. Dadurch ist i nicht mehr kleiner als a und die Schleife wird kein weiteres Mal betreten.

Verschachtelte for-Schleife

Du kannst auch for-Schleifen als Anweisung in eine weitere for-Schleife schreiben:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Schau dir folgende verschachtelte for-Schleife an:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Die äußere for-Schleife wird betreten und anschließen die innere. Da i und j beide 1 sind, wird die innere Schleife einmal ausgeführt. Ein "#" wird auf die Konsoloe ausgegeben. Danach wird j um 1 erhöht. Nach der inneren for-Schleife wird ein Zeilenumbruch mithilfe von einem Leerzeichen und der println-Funktion auf die Konsole geschrieben. Jetzt wird auch i um 1 erhöht.

Nun startet es wieder von vorne. Am Ende wird folgendes auf die Konsole ausgegeben:

Dadurch, dass in der inneren Schleife die print- und nicht die println-Funktion verwendet wurde, werden alle Hashtags nebeneinander geschrieben, bis aus der inneren Schleife ausgetreten und in der äußeren der Zeilenumbruch ausgegeben wird.

Erweiterte for-Schleife

Es gibt noch eine kürzere Schreibweise einer for-Schleife. Diese erweiterte for-Schleife (oder auch for each-Schleife) wird verwendet, um listenartige Datenstrukturen und Arrays zu durchlaufen.

Ein Array ist eine statische Datenstruktur, in der Elemente gleichen Typs gespeichert werden. Es ist außerdem indexbasiert, das heißt allen Werten wird ein Index zugeordnet. Die Zählung der Indizes startet dabei bei 0. Der erste Wert wird also an Index 0 gespeichert, der zweite an Index 1 und so weiter.

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Eine erweiterte for-Schleife besteht wieder aus dem Keyword for und runden Klammern, in denen der Datentyp, ein Laufvariable und ein Datenstruktur steht. Danach folgen geschweifte Klammern und Anweisungen.

Der Datentyp ist dabei vom selben Datentyp wie die Datenstruktur, die durchlaufen werden soll.

Der Datentyp gehört zu einer Laufvariable, die durch die Datenstruktur laufen wird.

Der Name der Datenstruktur wird hinter einem Doppelpunkt angegeben.

Schau dir wieder folgenden Beispiel-Code an:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Hier wird das Array a deklariert und initialisiert (mit den Werten 1,2,3 befüllt). Mithilfe der erweiterten for-Schleife schrittweise wird dieses Array nun durchlaufen und dabei immer der Inhalt der aktuellen Postion in dem Array in eine eigene Zelle ausgegeben:

1

2

3

Verschachtelte for-Schleifen werden zum Beispiel verwendet, um durch zweidimensionale Arrays zu laufen.

Annehmende Schleifen

Annehmende Schleifen führen im Gegensatz zu den abweisenden Schleifen zuerst die Anweisungen aus und überprüfen erst danach die Bedingung. Zu diesen gehört die do-while-Schleife.

do-while-Schleife

Die do-while-Schleife ist folgendermaßen aufgebaut:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Im do-Teil der Schleife stehen die Anweisungen, die ausgeführt werden. Danach folgt erst das Keyword while und die Bedingung, die überprüft werden soll. Hier folgt also nach der Bedingung kein Rumpf mit Anweisungen.

Also wird hier zuerst a um 1 verringert und dann die Bedingung überprüft. Da a nicht kleiner als 4 ist, wird die Schleife abgebrochen.

Hier wurde also die Bedingung einmal ausgeführt, obwohl die Bedingung nicht erfüllt war.

Auch hier musst du darauf achten, dass es immer eine Abbruchbedingung gibt, die erreicht werden kann!


Beispiel

Jan, Nicole und Jeremiah sitzen endlich im Auto auf dem Weg zu ihrem Campingausflug. Da sie recht schnell Hunger bekommen, jedoch nicht viel Essen dabei haben, machen sie Folgendes:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Nach jedem Kilometer darf jede und jeder von ihnen eine Erdnuss essen. Da das nicht wirklich satt macht, nehmen sie sich vor, für den Rückweg für mehr Proviant zu sorgen.

Jan, Nicole und Jeremiah sitzen in ihrem E-Auto und werfen Erdnussschalen aus dem Fenster
No items found.

simpleclub ist am besten in der App.

Mit unserer App hast du immer und überall Zugriff auf: Lernvideos, Erklärungen mit interaktiven Animationen, Übungsaufgaben, Karteikarten, individuelle Lernpläne uvm.

Jetzt simpleclub Azubi holen!

Mit simpleclub Azubi bekommst du Vollzugang zur App: Wir bereiten dich in deiner Ausbildung optimal auf deine Prüfungen in der Berufsschule vor. Von Ausbilder*innen empfohlen.

Jetzt simpleclub Azubi holen