Schleifen programmieren: Ablauf und Beispiele
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.
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.
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:
- Einen Anfangszustand festlegen.
- Die Bedingung prüfen.
- Ist sie falsch, die Schleife verlassen.
- Ist sie wahr, den Rumpf ausführen.
- Den Zustand verändern und wieder bei der Prüfung beginnen.
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üfung | Bedingung | Wirkung |
|---|---|---|
i = 0 | wahr | 0 ausgeben, dann i = 1 |
i = 1 | wahr | 1 ausgeben, dann i = 2 |
i = 2 | wahr | 2 ausgeben, dann i = 3 |
i = 3 | falsch | Schleife beenden |
Der Rumpf läuft dreimal. Die Bedingung wird noch ein viertes Mal geprüft, damit das Programm erkennt, dass die Schleife beendet ist.
Frage bei jeder Schleife: Wo startet sie? Was wird geprüft? Was ändert sich? Wann wird die Bedingung falsch?
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.
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++.
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.
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.
Welche Schleifenart passt zur Aufgabe?
Die Wahl hängt davon ab, was du über die Wiederholung weißt.
| Situation | Passende Form | Grund |
|---|---|---|
| Start, Ende und Schritt sind klar | for | Der Zählvorgang steht kompakt im Kopf. |
| Wiederholen, solange eine Bedingung gilt | while | Die Bedingung steht im Mittelpunkt. |
| Der Rumpf muss mindestens einmal laufen | do-while | Die erste Prüfung erfolgt erst nach dem Rumpf. |
| Jedes Element einer Sammlung bearbeiten | foreach beziehungsweise erweiterte for-Schleife | Ein 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.
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.
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.
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.
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?
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.
Karteikasten
Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.
Alles auf einen Blick
- 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
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.
Mit Google fortfahren