Wiederholungen
Wenn man Anweisungen in Àhnlicher Weise mehrfach wiederholen möchte, schreibt man sie nicht mehrfach hintereinander ins Programm, sondern nutzt Wiederholungen ("Schleifen"/"Loops").
Kopfgesteuerte-Schleife (while-loop)
Wir schreiben den Text "Hallo Welt!" 10-mal untereinander in die Ausgabe. Zuerst möchte ich Euch zeigen, wie man es nicht machen sollte:
Viel besser ist es, den Computer anzuweisen, die Ausgabe von "Hallo Welt!" 10-mal zu wiederholen. Das geht so:
ErklÀrung der einzelnen Anweisungen
int n = 1;
Die Variable n benutzen wir, um zu zÀhlen, wie oft wir schon wiederholt haben. n == 1 bedeutet, dass wir im 1. Wiederholungsdurchgang sind.
while(n <= 10){
println("Hallo Welt!");
n = n + 1;
}
Die Anweisung while(n < = 10) bedeutet: Wiederhole die Anweisungen zwischen den nachfolgenden {}, solange n kleiner oder gleich 10 ist. Damit die Anweisungen nicht unendlich oft wiederholt werden, mĂŒssen wir dafĂŒr sorgen, dass die Aussage n < = 10 irgendwann nicht mehr zutrifft. Deshalb erhöhen wir am Ende der des wiederholten Blocks n um 1, indem wir schreiben: n = n + 1;.
println("Fertig!", Color.green);
Sobald die Bedingung hinter while nicht mehr zutrifft, werden die Anweisungen in {} ĂŒbersprungen und der Computer fĂ€hrt mit den Anweisungen fort, die hinter den {} stehen. In diesem Fall gibt er "Fertig!" aus.
ZĂ€hlergesteuerte-Schleife (for-loop)
Die while-loop hat zwei groĂe Nachteile:
- Zum bloĂen ZĂ€hlen ist sie sehr umstĂ€ndlich, da insgesamt drei Zeilen benötigt werden:
int i = 0; // Deklaration der ZĂ€hlvariable
while(i <= 10){ // Bedingung
// Anweisungen
i++; // Erhöhung der ZÀhlvariable
}
- Oft stehen zwischen der Deklaration der ZÀhlvariable und der Bedingung sowie zwischen der Bedingung und der Erhöhung der ZÀhlvariable sehr viele Anweisungen und es ist schwer, "auf einen Blick" zu erfassen, wie oft wiederholt wird und welche Werte die ZÀhlvariable bei jedem Wiederholungsschritt annimmt.
FĂŒr alle AnwendungsfĂ€lle, in denen auf irgendeine Art und Weise gezĂ€hlt wird, verwendet man daher ĂŒblicherweise eine Kurzschreibweise der while-loop, die for-loop. Hier eine GegenĂŒberstellung der beiden. Beide Programme sind gleichwertig:
int i = 1;
while(i <= 10) {
i++;
}
for(int i = 1; i <= 10; i++) {
}
Wir schreiben den Text "Hallo Welt!" 10-mal untereinander in die Ausgabe. Mit der Variablen i zÀhlen wir dabei, wie oft wir ihn schon ausgegeben haben.
Test-dich-Projekt 1
Aufgabenstellung
Schreibe ein Programm, das mit einer for-Schleife die Summe der Zahlen von 3 bis 27 berechnet und das Ergebnis in der Konsole ausgibt.
TestfÀlle
- Das Ergebnis der Summe von 3 bis 27 ist 375.
- Das Ergebnis der Summe von 1 bis 100 ist 5050.
Test-dich-Projekt 2
Aufgabenstellung
Gebe die for-Schleifen an, mit wir denen alle Dominosteine ohne Dopplungen in der Konsole ausgeben können. Zur Erinnerung sind im TestfÀlle-Abschnitt alle Dominosteine angegeben, und dein Programm soll genau diese Ausgabe in der Konsole erzeugen.
TestfÀlle
(0|0)(0|1)(0|2)(0|3)(0|4)(0|5)(0|6)
(1|1)(1|2)(1|3)(1|4)(1|5)(1|6)
(2|2)(2|3)(2|4)(2|5)(2|6)
(3|3)(3|4)(3|5)(3|6)
(4|4)(4|5)(4|6)
(5|5)(5|6)
(6|6)