Kapitel 3 Unit 2 von 5 Theorie + Übungen Dauer: ~45 Min.
Ömer
Ömer sagt:

Die do-while-Schleife ist wie eine while-Schleife mit einem wichtigen Unterschied: Sie führt den Code mindestens einmal aus – egal was! Danach wird die Bedingung geprüft. Perfekt für Menüs! 🎛️

do-while Syntax Unterschied zu while Semikolon nach der Bedingung Anwendung: Menüs

🔁 do-while – Nachprüfende Schleife

Bei do-while wird der Code zuerst ausgeführt, dann die Bedingung geprüft:

SYNTAX
do {
    // mindestens einmal!
} while (Bedingung);  ← Semikolon!
BEISPIEL
int i = 1;
do {
    printf("%d\n", i);
    i++;
} while (i <= 5);

⚖️ while vs. do-while – der entscheidende Unterschied

while – vorprüfend

Bedingung wird VOR dem ersten Durchlauf geprüft. Ist sie sofort falsch, wird der Block gar nicht ausgeführt.

int x = 10;
while (x < 5) {
  printf("Nie!");  // wird nie ausgegeben!
}

do-while – nachprüfend

Der Block wird mindestens einmal ausgeführt, dann erst wird die Bedingung geprüft.

int x = 10;
do {
  printf("Einmal!");  // wird EINMAL ausgegeben!
} while (x < 5);

⚠️ Das Semikolon nach while()

Bei do-while steht nach der schließenden Klammer ein Semikolon: } while (bed);
Das vergisst man leicht – aber der Compiler meldet einen Fehler, wenn es fehlt.

💻 Praktisches Beispiel: Menü

menue.cC
#include <stdio.h>
int main() {
    int wahl;

    do {
        printf("\n=== MENÜ ===\n");
        printf("1. Neu starten\n");
        printf("2. Einstellungen\n");
        printf("3. Beenden\n");
        printf("Wahl: ");
        scanf("%d", &wahl);

        if (wahl == 1) printf("Neustart...\n");
        if (wahl == 2) printf("Einstellungen...\n");

    } while (wahl != 3);   // Wiederholen bis "3" gedrückt

    printf("Auf Wiedersehen!\n");
    return 0;
}

✏️ Übungen

Übung 1

Unterschied erklären

Was ist der Unterschied zwischen while und do-while? In welcher Situation würdest du welche verwenden?

Denk an Menüs: Ein Menü soll IMMER mindestens einmal angezeigt werden – egal was der Benutzer zuvor eingegeben hat.
Übung 2

Ausgabe bestimmen

Was gibt dieser do-while-Code aus?

int n = 5;
do {
    printf("%d\n", n);
    n -= 2;
} while (n > 0);

Ausgabe:

Übung 3 – Programm

Zahlen-Rate-Spiel

Schreibe ein einfaches Rate-Spiel: Die gesuchte Zahl ist 42. Der Benutzer tippt so lange, bis er die richtige Zahl eingegeben hat. Ausgabe: „Zu klein!", „Zu groß!" oder „Richtig!"

#include <stdio.h> int main() { int gesucht = 42; int eingabe; do { printf("Rate eine Zahl: "); scanf("%d", &eingabe); /* if-else für Hinweise */ } while (/* solange nicht erraten */); printf("Glückwunsch!\n"); return 0; }
Übung 4 – Bonus

Quersumme berechnen

Schreibe ein Programm, das die Quersumme einer Zahl berechnet (z.B. 1234 → 1+2+3+4 = 10). Verwende do-while und den Modulo-Operator:

#include <stdio.h> int main() { int zahl, quersumme = 0; printf("Zahl eingeben: "); scanf("%d", &zahl); int temp = zahl; do { quersumme += temp % 10; /* letzte Ziffer */ temp /= 10; /* Ziffer abschneiden */ } while (temp > 0); printf("Quersumme von %d = %d\n", zahl, quersumme); return 0; }
1234 % 10 = 4 (letzte Ziffer). 1234 / 10 = 123 (Ziffer abschneiden). Wiederholen bis nichts mehr übrig!