Informatik

Schleifen programmieren: Ablauf und Beispiele

Schleifen programmieren: Ablauf und Beispiele
Schleifen programmieren: Ablauf und Beispiele
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Eine Schleife wiederholt einen Anweisungsblock. Sie eignet sich immer dann, wenn dieselben Schritte mehrfach ausgeführt werden sollen. Entscheidend sind eine klare Bedingung und eine Änderung, durch die die Schleife zum richtigen Zeitpunkt endet.

Auf dieser Seite lernst du die sprachübergreifende Grundidee kennen. Die Codebeispiele verwenden eine Java-ähnliche Schreibweise; in anderen Programmiersprachen kann die Syntax anders aussehen.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Wozu brauchst du eine Schleife?

Stell dir vor, ein Programm soll fünfmal Hallo ausgeben. Du könntest dieselbe Anweisung fünfmal hinschreiben. Eine Schleife fasst diese Wiederholung zusammen und macht sichtbar, was wiederholt wird und wie lange.

Definition

Schleife

Eine Schleife ist eine Kontrollstruktur. Sie führt ihren Schleifenrumpf, also einen Block aus Anweisungen, wiederholt aus. Eine Iteration ist ein einzelner Durchlauf dieses Rumpfs.

Eine typische kopfgesteuerte Schleife folgt diesem Ablauf:

  1. Einen Anfangszustand festlegen.
  2. Die Bedingung prüfen.
  3. Ist sie falsch, die Schleife verlassen.
  4. Ist sie wahr, den Rumpf ausführen.
  5. Den Zustand verändern und wieder bei der Prüfung beginnen.
Beispiel

Gesucht ist die Ausgabe der Zahlen 0, 1 und 2.

java int i = 0; while (i < 3) { println(i); i++; }

i startet bei 0. Vor jedem Durchlauf wird i < 3 geprüft. Nach der Ausgabe erhöht i++ den Wert um 1.

PrüfungBedingungWirkung
i = 0wahr0 ausgeben, dann i = 1
i = 1wahr1 ausgeben, dann i = 2
i = 2wahr2 ausgeben, dann i = 3
i = 3falschSchleife beenden

Der Rumpf läuft dreimal. Die Bedingung wird noch ein viertes Mal geprüft, damit das Programm erkennt, dass die Schleife beendet ist.

Merke

Frage bei jeder Schleife: Wo startet sie? Was wird geprüft? Was ändert sich? Wann wird die Bedingung falsch?

Teste dich
Frage 1 von 1LeichtWas bedeutet eine Iteration?
Lösung: ein einzelner Durchlauf des Schleifenrumpfs — Eine Iteration umfasst genau einen Durchlauf des Schleifenrumpfs.
Wie arbeitet eine while-Schleife?

while bedeutet „solange“. Eine while-Schleife passt besonders gut, wenn eine Bedingung im Mittelpunkt steht und die Zahl der Durchläufe nicht schon beim Schreiben feststeht.

text while (BEDINGUNG) { SCHLEIFENRUMPF }

Die Bedingung wird vor dem Rumpf geprüft. Ist sie von Anfang an falsch, läuft der Rumpf kein einziges Mal. Deshalb heißt while auch kopfgesteuert oder vorprüfend.

Definition

Laufbedingung und Abbruchbedingung

Eine Laufbedingung sagt, wann die Schleife weiterläuft. Bei i < 3 läuft sie, solange i kleiner als 3 ist. Die zugehörige Abbruchbedingung beschreibt das Gegenteil: i >= 3.

Warum entstehen Endlosschleifen?

java int i = 0; while (i < 3) { println("weiter"); }

Hier bleibt i immer 0. Die Bedingung i < 3 bleibt deshalb wahr. Das Programm führt den Rumpf unbegrenzt weiter aus: Es ist eine Endlosschleife.

Die Reparatur besteht nicht darin, die Bedingung einfach umzudrehen. Der Zustand muss sich passend verändern, zum Beispiel mit i++.

Teste dich
Frage 1 von 2LeichtWelche Zeile sorgt im ersten Beispiel dafür, dass die Schleife schließlich endet?
Lösung: i++;i++ erhöht i nach jedem Durchlauf. So wird i < 3 schließlich falsch.
Frage 2 von 2MittelWas gibt dieser Code aus: int i = 3; while (i < 3) { println(i); i++; }?
Lösung: nichts — Eine kopfgesteuerte Schleife kann nullmal laufen, wenn ihre Bedingung am Anfang falsch ist.
Wie arbeitet eine for-Schleife?

Eine for-Schleife bündelt die drei typischen Teile eines Zählvorgangs im Schleifenkopf:

text for (INITIALISIERUNG; BEDINGUNG; AKTION) { SCHLEIFENRUMPF }

  • Initialisierung: legt den Startwert einmal fest.
  • Bedingung: wird vor jedem möglichen Durchlauf geprüft.
  • Aktion: wird nach jedem ausgeführten Rumpf ausgeführt.
Beispiel

Die geraden Zahlen von 0 bis 10 sollen ausgegeben werden.

java for (int i = 0; i <= 10; i = i + 2) { println(i); }

Die Werte sind 0, 2, 4, 6, 8, 10. Das sind sechs Durchläufe. Danach wird i zu 12; 12 <= 10 ist falsch. Die Summe der ausgegebenen Werte wäre 30.

Dieselbe Schleife lässt sich als while schreiben:

java int i = 0; while (i <= 10) { println(i); i = i + 2; }

Beide Fassungen haben denselben Start, dieselbe Bedingung und dieselbe Änderung. Bei der for-Schleife stehen diese drei Teile kompakt an einer Stelle.

Rückwärts zählen

java for (int i = 5; i > 0; i--) { println(i); }

Die Ausgabe lautet 5, 4, 3, 2, 1. Nach dem letzten Rumpf wird i zu 0; dann ist i > 0 falsch. Mit der Bedingung i < 0 würde der Rumpf keinmal laufen, weil sie schon für den Startwert 5 falsch wäre.

Teste dich
Frage 1 von 2LeichtWann wird die Aktion im Kopf einer for-Schleife ausgeführt?
Lösung: nach jedem ausgeführten Schleifenrumpf — Die Reihenfolge lautet: einmal initialisieren, Bedingung prüfen, Rumpf ausführen, Aktion ausführen und erneut prüfen.
Frage 2 von 2MittelWelche Änderung passt zu einer Schleife, die bei 10 startet und bis 0 herunterzählt?
Lösung: i-- — Beim Herunterzählen muss der Wert pro Durchlauf kleiner werden.
Welche Schleifenart passt zur Aufgabe?

Die Wahl hängt davon ab, was du über die Wiederholung weißt.

SituationPassende FormGrund
Start, Ende und Schritt sind klarforDer Zählvorgang steht kompakt im Kopf.
Wiederholen, solange eine Bedingung giltwhileDie Bedingung steht im Mittelpunkt.
Der Rumpf muss mindestens einmal laufendo-whileDie erste Prüfung erfolgt erst nach dem Rumpf.
Jedes Element einer Sammlung bearbeitenforeach beziehungsweise erweiterte for-SchleifeEin Element nach dem anderen wird bereitgestellt.

Eine fußgesteuerte Schleife sieht grundsätzlich so aus:

text do { SCHLEIFENRUMPF } while (BEDINGUNG);

Auch wenn die Bedingung beim ersten Prüfen falsch ist, wurde der Rumpf dann bereits einmal ausgeführt.

Einen Durchlauf oder die ganze Schleife verlassen

continue überspringt den noch übrigen Teil der aktuellen Iteration und setzt bei der nächsten Prüfung fort. break beendet dagegen die gesamte aktuelle Schleife; das Programm läuft hinter ihr weiter.

Beispiel

java for (int i = 1; i <= 5; i++) { if (i == 3) { continue; } println(i); }

Bei i = 3 wird println(i) übersprungen. Die Schleife endet aber nicht. Sie gibt 1, 2, 4, 5 aus.

Teste dich
Frage 1 von 2MittelEin Programm soll eine Eingabe mindestens einmal anfordern und danach prüfen, ob sie gültig ist. Welche Form passt am besten?
Lösung: do-while — Bei do-while steht der erste Rumpfdurchlauf vor der Prüfung.
Frage 2 von 2MittelWas bewirkt break in einer Schleife?
Lösung: Es beendet die aktuelle Schleife. — Nach break wird die Ausführung hinter der aktuellen Schleife fortgesetzt.
Wie funktionieren verschachtelte Schleifen?

Steht eine Schleife im Rumpf einer anderen, sind die Schleifen verschachtelt. Das eignet sich für zweidimensionale Strukturen: Die äußere Schleife kann die Zeilen zählen, die innere die Spalten.

Beispiel

java for (int zeile = 0; zeile < 3; zeile++) { for (int spalte = 0; spalte < 3; spalte++) { println("(" + zeile + "," + spalte + ")"); } }

Für zeile = 0 durchläuft spalte zuerst die Werte 0, 1, 2. Danach wird zeile zu 1, und die innere Schleife beginnt wieder bei spalte = 0. Dasselbe geschieht für zeile = 2.

Es entstehen neun Paare: von (0,0) über die weiteren Kombinationen bis (2,2). Der Grund ist: drei Werte der äußeren Schleife mal drei Werte der inneren Schleife ergeben neun Iterationen des inneren Rumpfs.

Merke

Für jeden Wert der äußeren Schleife läuft die innere Schleife vollständig.

Aufgabe: ein Rechteck aus Zeichen

Erzeuge mit zwei Schleifen dieses Muster:

text ##### ##### #####

Überlege zuerst: Welche Schleife zählt die drei Zeilen, welche die fünf Zeichen pro Zeile?

Gut zu wissen

Eine mögliche Lösung:

java for (int zeile = 0; zeile < 3; zeile++) { for (int spalte = 0; spalte < 5; spalte++) { print("#"); } println(); }

Die innere Schleife druckt fünf Zeichen ohne Zeilenumbruch. Erst danach erzeugt println() den Umbruch. Die äußere Schleife wiederholt diesen Ablauf dreimal.

Teste dich
Frage 1 von 2MittelWie oft wird print("#") in der Lösung ausgeführt?
Lösung: 15-mal — Drei äußere Durchläufe mal fünf innere Durchläufe ergeben 3 · 5 = 15 Ausführungen.
Frage 2 von 2SchwerWas ändert sich, wenn du die Zeilen- und Spaltenschleife samt ihren Grenzen vertauschst?
Lösung: Es entstehen fünf Zeilen mit je drei Zeichen. — Die äußere Schleife bestimmt nun fünf Zeilen; die innere erzeugt pro Zeile drei Zeichen.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Schleifen
    • Zweck: gleiche Schritte wiederholen
    • Bestandteile: Start, Bedingung, Rumpf, Änderung
    • `while`: Bedingung im Mittelpunkt
    • `for`: Zählvorgang im Mittelpunkt
    • `do-while`: mindestens ein Durchlauf
    • Sicherheit: erreichbares Ende prüfen
    • Verschachtelung: Zeilen und Spalten kombinieren

Prüfe eine Schleife immer in derselben Reihenfolge: Startwert notieren, Bedingung auswerten, Rumpf nachvollziehen, Zustandsänderung eintragen und erneut prüfen. Eine kleine Wertetabelle verhindert viele Denkfehler.

Abschluss-Check
Teste dich
Frage 1 von 4LeichtWelche Aussage über eine kopfgesteuerte Schleife stimmt?
Lösung: Ihr Rumpf kann nullmal ausgeführt werden. — while und die übliche for-Schleife prüfen vor jedem möglichen Durchlauf.
Frage 2 von 4MittelWelche Ausgabe erzeugt for (int i = 1; i <= 5; i = i + 2) { println(i); }?
Lösung: 1, 3, 5 — Die Bedingung erlaubt noch i = 5. Erst danach wird i zu 7, und 7 <= 5 ist falsch.
Frage 3 von 4MittelIn welcher Schleife droht unbeabsichtigtes Endlosverhalten?
Lösung: int i = 0; while (i < 4) { println(i); } — In der ersten Schleife bleibt i unverändert 0. Deshalb bleibt i < 4 wahr.
Frage 4 von 4SchwerDu willst alle 4 Zeilen und 6 Spalten eines Gitters bearbeiten. Wie viele Kombinationen verarbeitet der innere Rumpf?
Lösung: 24 — Für jede der vier Zeilen werden sechs Spalten durchlaufen: 4 · 6 = 24 Kombinationen.

Wenn du alle vier Lernziele sicher erklären und die Abschlussfragen begründen kannst, kannst du einfache Schleifen auswählen, prüfen und selbst schreiben.

Passend dazu