Mit den Wiederholungsanweisungen können Anweisungen oder Anweisungsblöcke mehrfach hintereinander ausgeführt werden.
Die for-Anweisung
Hier ein Beispiel:
- for(int i = 0; i < 10; i++) {
- System.out.println(i);
- }
In der Zeile 1, in den beiden ( und ) steht die Initialisierung im Beispiel ist es:
int i = 0;
Dann folgt der Ausdruck:
i < 10;
und zum Schluss die Updateliste:
i++
Am Anfang der for-Anweisung müssen wir eine Initialisierung eines Datentyps machen, dass heißt wir müssen einen Datentyp deklarieren und mit einem Wert initialisieren (die Initialisierung wird nur einmal in der for-Anweisung ausgeführt). Hier im Beispiel ist es die Wert 0. Danach kommt der Ausdruck, hier ist es i < 10, es wird ein boolean Ergebnistyp erwartet. Solange der Ergebnistyp true ist (also i kleiner als 10 ist) wird die for-Anweisung wiederholt. In der Updateliste wird i inkrementiert. Unser Beispiel macht nichts anderes als von 0 bis 9 zu zählen. Dann ist der Ausdruck false und die for-Anweisung wird nicht mehr wiederholt.
Hier ist die Konsolenausgabe des Beispiels:
Wenn wie in unserem Beispiel nur eine Anweisung im Anweisungsblock steht, kann die { und } auch weggelassen werden. Die for-Anweisung verhält sich dabei wie die if-Anweisung. Es ist z.B. auch dieses möglich:
- for(int i = 0, t = 10; i < 10 && t > 0; i++, t--) {
- System.out.println("Variable i = " + i);
- System.out.println("Variable t = " + t);
- }
Es ist also auch möglich mehrere Variablen in der for-Anweisung zu behandeln, sie müssen nur durch ein Komma in der Initialisierung und Updateliste getrennt werden. Im Ausdruck können die Logischen-Operatoren verwendet werden. Hier wird i inkrementiert und t dekrementiert.
Hier noch ein Beispiel:
- for(int i = 0, t = 10; i < 10; i += 2, t = t * 3) {
- System.out.println("Variable i = " + i);
- System.out.println("Variable t = " + t);
- }
Wie man sieht gibt es sehr viele Möglichkeiten bei der for-Anweisung. Hier werden die Variablen i und t deklariert und jeweils mit einem Wert initialisiert. Im Ausdruck wird aber nur die Variable i überprüft ob i kleiner ist als 10, wenn ja (also true), dann wird die for-Anweisung wiederholt. In der Updateliste wird Variable i mit 2 addiert und die Variable t mit 3 multipliziert.
Es ist auch möglich die for-Anweisungen ineinander zu verschachteln, hier ist noch ein weiteres Beispiel:
- for (int y = 0; y < 3; y++) {
- for (int x = 0; x < 3; x++) {
- System.out.print((x + y) + " ");
- }
- System.out.println();
- }
Die for-Anweisung in Zeile 1 wird ausgeführt, danach wird der Ausdruck auf den Ergebnistyp geprüft, wenn der Ergebnistyp true ist, wird die Variable y inkrementiert und der Anweisungsblock ausgeführt. Damit wird die for-Anweisung in Zeile 2 ausgeführt, die im Anweisungsblock steht und die Variable x wird inkrementiert. In Zeile 3 wird im Konsolenfenster die Summe von x und y ausgegeben. Die for-Anweisung von Zeile 2 wird wiederholt bis der Ergebnistyp im Ausdruck false ist. Mit System.out.println(); in Zeile 5 wird ein Zeilenumbruch erstellt. Jetzt wird die Variable y inkrementiert und die for-Anweisung aus Zeile 2 initialisiert x neu, die Variablen x und y werden addiert und deren Summe auf der Konsole ausgegeben. Jetzt wiederholt sich die for-Anweisung in Zeile 2 bis der Ergebnistyp im Ausdruck false ist. So geht es weiter bis die for-Anweisung in Zeile 1 auch der Ausdruck false erhält.
Hier die Konsolenausgabe:
Es gibt noch eine weitere vereinfachte for-Anweisung. Diese werden wir aber in einen späteren Tutorial besprechen, da uns dafür noch die Kenntnisse fehlen. Hier ein Beispiel:
- for(int i : t) {
- ...
- }
Mit der for-Anweisung kann auch eine Endlosschleife erzeugt werden. Hier ein Beispiel:
- for(;;) {
- ...
- }
Bei dieser for-Anweisung sollte immer eine if-Anweisung mit einer break-Anweisung eingebaut sein, damit die Endlosschleife auch beendet werden kann. Eine switch-Anweisung ist hier leider nicht für das Beenden der for-Anweisung möglich.
Hier noch ein Beispiel:
- for(boolean b = true; b;) {
- ...
- }
Diese for-Anweisung, ist auch eine Endlosschleife. Wir können diese Schleife beenden wenn wir eine Endscheidungsanweisung (if-Anweisung oder switch-Anweisung) einbauen die den Wert b false zuweist.
Die while-Anweisung
- int i = 0;
- while(i < 10) {
- System.out.println(i++);
- }
In den ( und ) steht der Ausdruck der while-Anweisung. Wenn die while-Anweisung nur eine Anweisung hat, kann die { und } weggelassen werden. Der Ausdruck der while-Anweisung erwartet den Ergebnistyp boolean, solange dieser Wert true ist, wird die Anweisung bzw. der Anweisungsblock wiederholt.
Auch bei der while-Anweisung, kann eine Endlosschleife geschrieben werden:
- while(true) {
- ...
- }
Die while-Anweisung kann auch wie die for-Anweisung verschachtelt werden.
Die do-Anweisung
- int i = 10;
- do {
- System.out.println(i--);
- } while(i > 0);
Bei der do-Anweisung wird zuerst die Anweisung bzw. der Anweisungsblock (der in { und } steht) ausgeführt und danach erst der Ausdruck der while-Anweisung ausgeführt. Die while-Anweisung muss hier mit dem Semikolon beendet werden.


Keine Kommentare:
Kommentar veröffentlichen