Zählschleife
Die for-Schleife ist eine Schleifenart in Java. In solch einer Schleife werden Befehle solange wiederholt, bis eine Abbruchbedingung erfüllt wurde. Ansonsten ist ein laufendes Programm in einer Endlosschleife gefangen.
Inhaltsverzeichnis
[Verbergen]Aufbau einer for-Schleife
Der Schleifenkopf
Das Schlüsselwort für eine for-Schleife ist das namensgebende for. Darauf folgt der Schleifenkopf mit folgendem Aussehen: ( 1. ; 2. ; 3. ). Hinter der letzten Klammer darf kein Semikolon folgen.
Unter 1. kann eine Zählvariable initialisiert werden, z.B. int i = 0;.
Unter 2. kann und sollte eine Bedingung für das Ausführen der Schleife stehen, z.B. i < 5. Solange dies erfüllt ist, wird die Schleife ausgeführt.
Unter 3. kann eine Fortsetzung stehen, die als letztes im Schleifenrumpf ausgeführt wird, z.B. ++i.
Zusammenfassend sieht der Schleifenkopf einer for-Schleife so aus:
for(Initialisierung ; Bedinung ; Fortsetzung)
Beispiel:
1 | for ( int i = 0 ; i < 5 ; ++i) |
Der Schleifenrumpf
Als Schleifenrumpf wird der Programmcode bezeichnet, der in der Schleife wiederholt werden soll. Wenn keine {}-Klammern gesetzt werden, wird nur der erste Befehl nach dem Schleifenkopf wiederholt. Wenn mehrere Befehle wiederholt werden sollen, dann muss auf dem Schleifenkopf { folgen. Nach dem letztem Befehl des Schleifenrumpfs }.
1 2 3 4 5 | for (...) { erg = erg + 5 ; System.out.println(erg); } |
Mit jedem Schleifendurchlauf wird die Variable erg um 5 erhöht. Danach wird diese im jedem Durchlauf ausgegeben.
1 2 3 | for (...) erg = erg + 5 ; System.out.println(erg); |
Auch hier wird bei jedem Schleifendurchlauf die Variable erg um 5 erhöht. Jedoch wird nur diese Variable nur nach der Schleife einmal ausgegeben.
die (komplette) for-Schleife
1 2 3 4 5 | for ( int i = 0 ; i < 5 ; ++i) { erg = erg + 5 ; System.out.println(erg) } |
Zunächst wird die Zählvariable i mit 0 initialisiert. Danach wird geprüft, ob i < 5 ist. Da dies korrekt ist, wird nun der Schleifenrumpf ausgeführt. Auf die Variable erg wird 5 aufaddiert und danach wird die Variable ausgegeben. Nun wird i auf 1 erhöht.
Der Schleifenkopf wird nun mit i = 1 ausgeführt. Die Initialisierung wird nun nicht mehr ausgeführt, da diese nur zu Beginn der Schleife ausgeführt wird. Es wird also direkt überprüft, ob i < 5 ist. 1 < 5 ist korrekt, der Schleifenrumpf wird also wieder ausgeführt. Der Variable erg wird nun wieder 5 aufaddeirt und danach wieder ausgegeben. Anschließend wird i auf 2 erhöht.
Analog werden die Fälle für i = 2, i = 3 und i = 4 ausgeführt.
Die Bedingung i < 5 ist bei i = 5 nicht mehr erfüllt. Daher wird der Schleifenrumpf nicht mehr ausgeführt. Die Zählvariable i wird nun verworfen.
weitere Schlüsselwörter
break - Statement
Mit break kann eine Schleife vorzeitig abgebrochen werden.
Bsp.:
1 2 3 4 5 6 7 | for ( int i = 0 ; i < 5 ; ++i) { if (i == 2 ) { break ; } } |
Wenn i = 2 ist, wird die Schleife abgebrochen.
continue - Statement
1 2 3 4 5 6 7 8 | for ( int i = 0 ; i < 5 ; ++i) { if (i == 2 ) { continue ; } System.Out.println(i); } |
Wenn i = 2 ist, wird die Schleife direkt wiederholt. Die Ausgabe wird daher bei i = 2 übersprungen und es wird direkt mit i = 3 weitergerechnet.