while-Schleife
Du möchtest mehr über die while-Schleife in Java erfahren? Hier erklären wir dir, wann und wie du die while- und die do-while-Schleife verwenden kannst.
Inhaltsübersicht
Java Schleifen: while-Schleife Java Beispiel
Schleifen in der Programmierung kannst du dir ähnlich wie die Wiederholungsschleife von Liedern vorstellen. Sie sind nur etwas komplexer aufgebaut. In Java gibt es drei verschiedene Schleifen: die for-, while- und die do-while-Schleife. Wir beschäftigen uns hier mit der while- und der do-while-Schleife. Der Aufbau einer while-Schleife sieht so aus:
Die while-Schleife wird nur unter einer bestimmten Bedingung ausgeführt. Wenn diese erfüllt ist, wird der Code, der sich innerhalb der geschweiften Klammern befindet, ausgeführt. Daraufhin wird überprüft, ob die Bedingung noch erfüllt ist. Sollte dass der Fall sein, springt unser Programm zum Anfang der Schleife zurück. Das passiert so lange, bis die Bedingung nicht mehr erfüllt ist. Danach läuft das Programm weiter durch den restlichen Code. Dieses Prinzip funktioniert genauso für die for-Schleife. Bei der do-while-Schleife sieht das etwas anders aus, aber darauf kommen wir später nochmal zurück.
Java while
Damit das Ganze etwas verständlicher wird, stellst du dir einfach einen Klickzähler vor, der deine Zahl immer um eins erhöht. Im echten Leben müsstest du dafür einen Knopf drücken. In der Programmierung wäre es aber sehr umständlich, in einzelnen Anweisungen den Wert der Variablen um 1 zu erhöhen und den aktuellen Wert auszugeben. Genau DAFÜR benötigen wir die while Schleife.
Schauen wir uns das genauer an. Hier wird zunächst außerhalb der Schleife die Variable counter deklariert und initialisiert. Diese soll so lange ausgeführt werden, bis unsere Variable den Wert 11 hat. Zusätzlich zur Addition soll immer der aktuelle Wert auf der Konsole ausgegeben werden. Damit wir aber nicht 22 Zeilen dafür verschwenden, verwenden wir die while-Schleife. Diese hat die Bedingung, dass sie so lange läuft, bis der counter den Wert 10 hat. Denn dann wird noch einmal addiert und unsere Variable hat den Wert 11. Sobald diese den Wert, den wir in der Bedingung angegeben haben, überschreitet, ist die Schleife beendet und unser Programm läuft weiter.
Schwieriger wird es aber, sie richtig einzusetzen. Deshalb solltest du dich mit den Schleifen und ihren Funktionen vertraut machen, um viele komplexe Vorgänge zu vereinfachen.
do-while Java
Aber bedenke, dass man mit der while-Schleife nicht alles problemlos lösen kann! Wenn die Bedingung deiner Schleife zum Beispiel aus irgendeinem Grund nicht erfüllt werden kann, du aber möchtest, dass dein Code trotzdem einmalig ausgeführt wird, dann stellt Java uns die sogenannte do-while-Schleife zur Verfügung.
Ihr Prinzip ist recht ähnlich zur while-Schleife. Diesmal steht der Code aber nicht nach, sondern vor der Schleife. Das führt dazu, dass erst der Code ausgeführt und dann die Bedingung geprüft wird. Ganz wichtig ist dabei, dass du nach der Bedingung ein Semikolon setzt!
Zusätzlich kannst du wie bei der if-Anweisung die Schleifen verschachteln. Das heißt, dass innerhalb einer Schleife eine weitere durchgeführt wird. Also vereinfacht gesagt: Zunächst wird von der äußeren Schleife die Bedingung geprüft. Wenn diese zutrifft, wird die der inneren Schleife überprüft. Diese läuft dann so lange weiter, bis die Bedingung nicht mehr erfüllt ist. Erst danach geht das Programm zurück in die äußere Schleife und führt, sofern vorhanden, den Code unterhalb der inneren Schleife aus.
Beispiel do-while-Schleife Java
Schauen wir uns dazu ein Beispiel an. Hier haben wir außerhalb der Schleife die integer Variable counter mit dem Wert 0 initialisiert und in der äußeren Schleife dann die integer Variable subCounter mit dem Wert 0. Hierbei ist es wichtig, dass die zweite Variable in der äußeren Schleife initialisiert wird! Es gibt dabei zwei Wege. Entweder, wir deklarieren subCounter außerhalb der Schleife und weisen ihm keinen Wert zu, oder wir deklarieren und initialisieren sie in der äußeren Schleife. Das ist essentiell, da die Variable sonst immer den Wert 4 hat und so die innere Schleife nicht mehr aufgerufen wird. Wenn aber bei jedem Aufruf der äußeren Schleife der Wert der Variable auf 0 zurückgesetzt wird, kann die innere Schleife wieder ausgeführt werden.
Ganz wichtig ist auch, dass du KEINE Endlosschleife einbaust! Eine Endlosschleife erzeugst du, indem die Bedingung immer erfüllt wird und so die Schleife nicht abgebrochen werden kann. Das führt dazu, dass dein Programm abstürzt und in den schlimmsten Fällen auch dein Computer in die Knie gezwungen wird.
Jetzt aber zurück zu unserer Schleife. Zuerst wird überprüft ob counter einen Wert kleiner gleich 10 hat. Wenn das zutrifft wird er auf der Konsole ausgegeben und um 1 erhöht. Außerdem weisen wir subCounter den Wert 0 zu. Danach wird die zweite Schleife aufgerufen und überprüft ob subCounter kleiner gleich 3 ist. Dann wird auch hier der Wert ausgegeben und anschließend erhöht. Wenn subCounter den Wert 4 erreicht hat, ist die Bedingung kleiner gleich 3 nicht mehr gegeben und das Programm springt zurück in die äußere Schleife. Dort wird der Code wieder in der Schleife abgearbeitet. Da subCounter jetzt den Wert 0 hat, kann die innere Schleife wieder problemlos ausgeführt werden.
Du kannst solche mehrdimensionalen oder auch verschachtelten Schleifen auch noch weiter verschachteln. Sei es, dass in deiner subCounter Schleife noch eine Schleife ist, oder deine äußere Schleife zwei innere hat. Allerdings benutzt man für solche Verschachtelungen eher die for-Schleife. Diese ist anders aufgebaut und erspart etwas mehr Arbeit als die while-Schleife. So kannst du sie noch einfacher einsetzen.