
Manchmal willst du eine Schleife mittendrin beenden – das ist break. Oder du willst den aktuellen Durchlauf überspringen – das ist continue. Zwei mächtige Werkzeuge, die du kennen musst! ⚡
⛔ break – Schleife sofort verlassen
break beendet die Schleife sofort – unabhängig von der Bedingung. Das Programm macht nach der Schleife weiter:
for (int i = 1; i <= 10; i++) { if (i == 5) { printf("Stopp bei %d!\n", i); break; // Verlässt die Schleife sofort } printf("%d\n", i); } printf("Nach der Schleife.\n");
2
3
4
Stopp bei 5!
Nach der Schleife.
⏭️ continue – Durchlauf überspringen
continue springt zum nächsten Durchlauf – der Rest des aktuellen Körpers wird übersprungen:
for (int i = 1; i <= 10; i++) { if (i % 2 == 0) { continue; // Gerade Zahlen überspringen } printf("%d\n", i); // Nur ungerade! }
3
5
7
9
⚖️ break vs. continue
⛔ break
Verlässt die gesamte Schleife. Das Programm macht nach der schließenden } weiter. Wie eine Notbremse.
Einsatz: Suche – wenn gefunden, abbrechen.
⏭️ continue
Überspringt nur den aktuellen Durchlauf. Die Schleife läuft weiter. Wie ein „Nächster bitte."
Einsatz: Bestimmte Werte filtern.
🐛 Typische Schleifenfehler
| Fehler | Beispiel | Problem | Lösung |
|---|---|---|---|
| Endlosschleife | while(1) ohne break | Programm hängt | Bedingung korrekt setzen |
| Off-by-One | i < 10 statt i <= 10 | 1 Durchlauf zu wenig | Grenze genau prüfen |
| Zähler nicht updaten | i++ vergessen | Endlosschleife | Update-Schritt einfügen |
| Falsche Startbedingung | Startwert zu groß/klein | Falsche Anzahl | Startwert prüfen |
| Semikolon nach for | for(...) ; | Leere Schleife + Körper 1x | Kein ; nach for/while |
🚨 Der gemeine Semikolon-Bug!
Ein versehentliches Semikolon nach for oder while erzeugt eine leere Schleife. Der eigentliche Block wird danach nur einmal ausgeführt:
for (int i=0; i<5; i++); // ← Semikolon! Leere Schleife läuft 5 Mal
{
printf("Nur einmal!\n"); // ← Wird nur EINMAL ausgegeben!
}
✏️ Übungen
Ausgabe vorhersagen
Was gibt dieser Code aus? (Ohne Computer ausprobieren!)
for (int i = 1; i <= 8; i++) {
if (i == 3) continue;
if (i == 6) break;
printf("%d ", i);
}
Ausgabe:
Fehler finden
Finde und beschreibe den Fehler in jedem Code-Snippet:
A:
for (int i = 1; i < 10; i++);
printf("%d\n", i);
B:
int x = 1;
while (x <= 10) {
printf("%d\n", x);
}
Erste Zahl durch 7 teilbar
Schreibe ein Programm, das mit einer for-Schleife von 1 bis 100 geht und die erste Zahl ausgibt, die durch 7 teilbar ist. Danach soll die Schleife abbrechen.
FizzBuzz
Das klassische Programmierproblem: Zahlen 1 bis 30. Für Vielfache von 3: „Fizz". Für Vielfache von 5: „Buzz". Für Vielfache von 3 und 5: „FizzBuzz". Sonst: die Zahl selbst.
Primzahl-Checker
Eine Primzahl ist nur durch 1 und sich selbst teilbar. Schreibe ein Programm, das prüft ob eine eingegebene Zahl eine Primzahl ist. Nutze break um die Schleife früh zu beenden: