Loops 🔁

Bisher sind unsere Programme geradlinig von oben nach unten durchgelaufen. Manchmal möchte man in einem Programm aber denselben Code häufig hintereinander ausführen. Dafür gibt es sogenannte Loops (Schleifen).

⚠️ Warnung: Wenn du eine Schleife schreibst, deren Bedingung nie false wird, läuft sie für immer (“Endlosschleife”). In diesem Notebook bricht der Browser nach 1 Sekunde automatisch ab — keine Sorge, dein Tab friert nicht ein.

while-Loop

Mit einem while-Loop können wir ein Stück Code ausführen, wenn eine Bedingung gilt — genau wie mit einem if. Allerdings führt while den Code immer und immer wieder aus, solange die Bedingung true bleibt.

Man liest allgemein while (A) { B } als “Solange A gilt, mach immer wieder B”.

Beachte die Zeile i = i + 1: ohne sie würde i immer 1 bleiben, die Bedingung i <= 10 wäre immer true, und die Schleife würde nie aufhören. Probier es aus — kommentiere die Zeile mit // aus und schau, was passiert.

for-Loop — die kompakte Alternative

Das Muster von oben — eine Variable setzen, eine Bedingung prüfen und die Variable am Ende jeder Runde hochzählen — kommt so oft vor, dass es dafür eine kürzere Schreibweise gibt: den for-Loop.

Ein for-Loop packt alle drei Teile in eine Zeile, getrennt durch Semikolons:

for (Startwert; Bedingung; Schritt) {
  // Code, der wiederholt wird
}
  • Startwert: let i = 1 — wird einmal am Anfang ausgeführt.
  • Bedingung: i <= 10 — wird vor jeder Runde geprüft (wie bei while).
  • Schritt: i++ — wird am Ende jeder Runde ausgeführt. i++ ist eine Kurzform für i = i + 1.

Der folgende for-Loop macht exakt dasselbe wie unser erster while-Loop, braucht aber weniger Zeilen und man kann das Hochzählen nicht mehr vergessen:

Beide Schleifen sind gleichwertig — nimm die, die dir besser gefällt. In der Praxis verwendet man for, wenn man von vornherein weiß, wie oft gezählt werden soll, und while, wenn man nur eine Bedingung hat und nicht weiß, wie viele Runden es werden.

break — Schleife abbrechen

Mit break kannst du eine Schleife sofort abbrechen, mitten im Durchlauf.

continue — eine Runde überspringen

continue ist wie break, aber bricht nur die aktuelle Runde ab und springt zur nächsten Runde der Schleife. Beispiel: nur ungerade Zahlen ausgeben.


Übung 🎯 — Collatz-Folge

Die Collatz-Folge ist eine berühmte Zahlenreihe:

  • Starte mit irgendeiner Zahl n.
  • Wenn n gerade ist: teile sie durch 2.
  • Wenn n ungerade ist: rechne 3 * n + 1.
  • Wiederhole, bis du bei 1 ankommst.

Es ist eine offene Frage in der Mathematik, ob die Folge immer bei 1 endet — aber für alle bisher getesteten Zahlen tut sie das.

Schreib ein Programm, das die Collatz-Folge für die Startzahl 123 berechnet und jede Zahl mit console.log ausgibt. Stoppe, wenn du den sich wiederholenden Zyklus 4, 2, 1 erreicht hast.

💡 Tipp anzeigen
  • Verwende let für deine Variable, weil sie sich verändert.
  • In der Schleife: prüfe mit %, ob die Zahl gerade ist.
  • Stoppe mit break, wenn die Zahl 1 ist (oder mach es eleganter über die while-Bedingung).

🧐 Lösungshinweis: Die größte Zahl, die dein Programm auf dem Weg ausgeben sollte, ist 628.

💡 Trivia: Bis heute wird zwar vermutet, dass jede ganze positive Zahl irgendwann in der 4, 2, 1-Folge landet — bewiesen ist das aber noch nicht. Mit Computerprogrammen wie deinem hat man schon sehr, sehr viele Zahlen ausprobiert und noch kein Gegenbeispiel gefunden.


Geschafft! 🚀

Du beherrschst jetzt:

  • while — Schleifen mit einer Bedingung
  • for — die kompakte Variante mit Startwert, Bedingung und Schritt
  • break — Schleife sofort abbrechen
  • continue — eine Runde überspringen

Als Nächstes: Scopes →

Zurück zur Übersicht