Informatik

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)