Schleifen / Loops

**This is an old revision of the document!**

REVEAL

====== Schleifen / Loops ====== —→ Schleifen sind grundlegende Kontrollstrukturen in der Programmierung, die es ermöglichen,

  • einen Codeblock wiederholt auszuführen,
  • solange eine bestimmte Bedingung erfüllt ist.

Sie sind besonders nützlich, um repetitive Aufgaben zu automatisieren und den Code effizienter und kompakter zu gestalten.

—→ Es gibt verschiedene Arten von Schleifen, die in fast jeder Programmiersprache vorkommen: —→

  • for-Schleife:
    • Eine Schleife, die verwendet wird, wenn die Anzahl der Wiederholungen bekannt ist —→
  • while-Schleife:
    • Sie wird verwendet, wenn die Anzahl der Wiederholungen nicht bekannt ist.
    • Sie endet, wenn eine bestimmte Bedingung nicht mehr wahr ist. —→
  • do-while-Schleife:
    • Sie ähnelt der while-Schleife - nur mit dem Unterschied, dass sie in jedem Fall einmal ausgeführt wird und erst anschließend die Bedingung geprüft wird.
    • Du wirst sehen, auch dieses Verhalten ist immer wieder gefragt beim Programmieren. —→> ===== for-Schleife ===== —→ ^Struktogramm^ ^ | |Hier das Symbol für ein Struktogramm: Es erinnert an ein umgefallenes L. Oben steht die Anweisung, die den Schleifenkopf ausmacht. | ||Der Schenkel des L läuft so lange, wie es innerhalb der for-Schleife Anweisungen zu erledigen gibt. | —→

Eine for-Loop ist eine der grundlegendsten und am häufigsten verwendeten Kontrollstrukturen in Java.\ Sie ermöglicht es, eine Anweisung oder einen Block von Anweisungen wiederholt auszuführen, solange eine bestimmte Bedingung erfüllt ist.\ Die Syntax einer for-Loops in Java sieht folgendermaßen aus: —→

 for (Initialisierung; Bedingung; Update) { // Codeblock, der wiederholt ausgeführt wird } 
—→ <notes> Du siehst an der Farbe des Wortes, dass das for ein Java-Schlüsselwort ist. —→ Es wird gefolgt von einem Block in runden Klammern: (initalization; condition; update). Was bedeutet das?\ </notes> —→

  • Initialisierung: Wir brauchen eine Zählvariable, die die Anzahl der Durchläufe zählt. Meist setzten wir sie beim Start auf 0 - aber nagel mich nicht fest darauf! Es gibt auch Fälle, wo wir andere Startwerte brauchen —→
  • Bedingung: Hier legen wir fest, wie lange die Schleife ausgeführt wird. Meist haben wir eine Menge von Elementen, deren Anzahl wir kennen und dann lassen wir die Schleife solange laufen, bis auch das letzte Element behandelt wurde —→
  • Update: Die Zählvariable bekommt einen neuen Wert. Wie dieser berechnet wird, steht in diesem Block —→ Hier nun ein konkretes Beispiel:

 for (int i = 0; i < 10; i++) { System.out.println("Die aktuelle Zahl ist: " + i); } 

Kannst du erkennen, was die Schleife macht?

  • Initialisierung: Wir deklarieren eine Variable i vom Datentyp int und weisen ihr den Startwert 0 zu.
  • Bedingung: Wir sagen, dass die Schleife so lange laufen soll, wie diese Variable i kleiner als 10 ist. Aber wieso steht das denn infrage? 0 ist doch kleiner 10!? Ja, aber die Variable i wird aufgrund des Updates immer größer!
  • Update: Die Zählvariable bekommt einen neuen Wert. In diesem Fall wird durch das i+++ die Variable i in jedem Durchlauf um 1 erhöht.

—→> ===== while-Schleife ===== —→ while-Loops sind wie bereits erwähnt, flexibler bei einer unbekannten Zahl von Iterationen. Das kann passieren, wenn eine Menge von Einträgen zu durchlaufen sind, wir aber nicht wissen, wie viele genau das sein werden. —→ Struktogramm

Das Struktogramm der while-Loop sieht aus, wie das der for-Loop - nur der Pseudocode, der drinnen steht, ist ein anderer. Anders als bei der for-Loop wird diesmal nähmlich keine Zählvariable deklariert und initialisiert. Falls wir eine solche Variable haben wollen, müsste diese von außen beigesteuert werden. —→

Eine while-Loop checkt vielmehr oftmals, ob bestimmte Bedingungen noch wahr sind, ob sich beispielsweise Zustände geändert haben, oder nicht.

—→

 Scanner scanner = new Scanner(System.in); String input = "";
 
 
      while (input.equals("exit") == false) {
          System.out.println("Gib 'exit' ein, um die Schleife zu beenden:");
          input = scanner.nextLine();
      }
 
      scanner.close();
 
—→
 int i = 0; // Initialisierung der Variablen while (i < 5) { // Bedingung prüfen System.out.println(i); // Schleifen-Körper i++; // Variablen aktualisieren } 
—→

do-while-Schleife