📘 Kapitel 3 · Schleifen & Wiederholungen

Schleifen vergleichen

while vs. do-while vs. for · Wann was? · Äquivalenz

14 / 30 Units
Ömer
Kapitel 3: Schleifen & Wiederholungen ~45 Min. Theorie + Simulator + Quiz + Spickzettel
Ömer
Ömer sagt:

Alle drei Schleifen können dasselbe – aber jede hat ihren Platz. Lerne die Faustregel und du wirst immer die richtige Wahl treffen!

Direktvergleich

SchleifePrüfungMin. DurchläufeBester Einsatz
whileVorher0Unbekannte Anzahl, unbedingt-vorprüfend
do-whileNachher1Menüs, Eingabe-Validierung
forVorher0Bekannte Anzahl, Zähler, Arrays

Dasselbe Programm – drei Wege

drei_wege.cC
// while:  int i=1; while(i<=5){printf("%d ",i);i++;}
// do-while: do{printf("%d ",i);i++;}while(i<=5);
// for:    for(int i=1;i<=5;i++)printf("%d ",i);

Entscheidungshilfe

Faustregel

Anzahl bekannt?for
Mindestens 1× sicher?do-while
Sonstwhile

Wann welche Schleife?

Die folgende Tabelle fasst die wichtigsten Entscheidungskriterien zusammen:

SituationBeste Wahl
Anzahl der Durchläufe vorher bekanntfor
Solange Bedingung gilt, Anzahl unbekanntwhile
Mindestens einmal ausführen (z. B. Menü)do-while
Über Array iterieren (Index 0 bis n-1)for
Nutzereingabe validieren (solange ungültig)do-while
Auf ein Ereignis warten (unbekannte Dauer)while

Alle drei Schleifen sind äquivalent

Technisch kann jede Schleife durch eine andere ersetzt werden. Die Wahl ist eine Frage der Lesbarkeit und Absicht – wähle immer die Schleife, die am klarsten ausdrückt, was das Programm tun soll.

Häufige Fehler

for-Schleife bei unbekannter Iterationszahl

Eine for-Schleife suggeriert, dass die Anzahl der Durchläufe bekannt ist. Wenn sie von einer Benutzereingabe oder einem externen Ereignis abhängt, ist while oder do-while die ehrlichere Wahl.

BESSER ALS WHILE
// Unklare Absicht mit for:
for(; eingabe != 0;) { scanf(...); }

// Klarer mit while:
while(eingabe != 0) { scanf(...); }

do-while läuft immer mindestens einmal

Ein häufiger Denkfehler: Man erwartet, dass do-while bei einer von Anfang an falschen Bedingung übersprungen wird – das stimmt nicht! Der Körper wird immer einmal ausgeführt, bevor die Bedingung erstmals geprüft wird.

ÜBERRASCHUNG
int x = 100;
do {
    printf("läuft!\n"); // wird ausgegeben!
} while (x < 5);       // 100 < 5 ist false

⚡ Code-Simulator

Bearbeite den Code und führe ihn aus. Schleifendurchläufe werden simuliert:

C Simulator – Unit 14 – Schleifen
▶ Ausgabe
– Klicke AUSFÜHREN –
Ömer
Ömer sagt:

Ändere Start- und Endwert oder den Schritt und beobachte wie sich die Ausgabe verändert. Das ist der beste Weg, Schleifen zu verstehen!

🎯 Wissens-Quiz

Frage 1
Welche Schleife eignet sich für eine bekannte, feste Anzahl von Wiederholungen?
Awhile
Bdo-while
Cfor
DAlle gleich gut
Frage 2
Welche Schleife wird mindestens einmal ausgeführt?
Awhile
Bfor
Cdo-while
DKeine
Frage 3
Für ein Programm das Eingaben liest bis der Benutzer 0 eingibt – welche Schleife?
Afor
Bwhile
Cdo-while
Dswitch
Frage 4
'for(int i=0;i<10;i+=3)' läuft wie oft?
A3
B4
C10
DUnbekannt
Frage 5
Was ist der Vorteil von for gegenüber while?
ASchneller
BInit, Bedingung und Update in einer Zeile
CMehr Durchläufe
DKein Unterschied
Frage 6
Welche Schleife ist am besten für "solange Bedingung gilt, Anzahl unbekannt"?
Afor
Bdo-while
Cwhile
Dswitch
Frage 7
Welche Schleife eignet sich am besten für das Iterieren über ein Array mit bekannter Größe?
Afor
Bwhile
Cdo-while
DAlle sind gleich geeignet
Frage 8
Was haben alle drei Schleifen (for, while, do-while) gemeinsam?
ASie werden alle mindestens einmal ausgeführt
BSie brauchen alle ein Semikolon am Ende
CSie können alle nur mit int-Variablen arbeiten
DBedingung, Körper und Aktualisierung des Zählers

📋 Spickzettel

Wann welche?
Anzahl bekannt→ for
Mind. 1 Durchlauf→ do-while
Anzahl unbekannt→ while
Alle äquivalentKönnen sich ersetzen
Unterschiede
while: 0+Vorprüfend
do-while: 1+Nachprüfend
for: 0+Vorprüfend + kompakt
Praxisfor am häufigsten

✅ Checkliste Unit 14

  • Ich kann erklären wann welche Schleife sinnvoller ist
  • Ich kann jede Schleife in die andere umschreiben
  • Ich kenne die Faustregel: bekannt→for, min1→do-while, sonst→while
  • Ich verstehe warum for die kompakteste Variante ist