Wie man do-while-Schleifen in C verwendet: Syntax, Beispiele und praktische Anwendungen

1. Einführung

Die Bedeutung von Schleifen in der C-Programmierung

In der Programmierung ist „Schleifen“ – das wiederholte Ausführen desselben Prozesses mehrere Male – unerlässlich. In C werden die for‑Anweisung, die while‑Anweisung und, wie in diesem Artikel behandelt, die do while‑Anweisung für Schleifen verwendet. Dieser Artikel konzentriert sich auf die do while‑Anweisung, erklärt ihre grundlegende Verwendung und praktische Beispiele.

2. Grundlagen der do while‑Anweisung

Grundsyntax der do while‑Anweisung

Die do while‑Anweisung garantiert, dass der Schleifenkörper mindestens einmal ausgeführt wird. Die Syntax lautet wie folgt:

do {
    // Code to execute
} while (condition);

In dieser Syntax wird der Code im do‑Block zuerst ausgeführt, dann wird die Bedingung ausgewertet. Wenn die Bedingung true ist, wiederholt sich die Schleife. Ist sie false, endet die Schleife.

Unterschied zur while‑Anweisung

Bei der while‑Anweisung wird die Bedingung zuerst geprüft, und nur wenn sie true ist, wird der Schleifenkörper ausgeführt. Im Gegensatz dazu führt die do while‑Anweisung den Schleifenkörper aus, bevor die Bedingung geprüft wird, sodass sie immer mindestens einmal läuft.

3. Wann man do while‑Anweisungen verwendet

Wiederholung von Benutzereingaben

Die do while‑Anweisung ist effektiv beim Validieren von Benutzereingaben. Zum Beispiel, wenn der Benutzer aufgefordert wird, ein Passwort einzugeben, kann man eine do while‑Schleife verwenden, um sicherzustellen, dass die erste Eingabe korrekt ist. Ist die Eingabe ungültig, fordert der Code den Benutzer erneut auf – das lässt sich einfach mit do while umsetzen.

Spielschleifen‑Verarbeitung

Die do while‑Anweisung ist auch in Spielen nützlich, wenn bestimmte Aktionen wiederholt werden sollen, bis der Spieler das Spiel beendet. Beispielsweise kann man weiter schleifen, solange der Spieler „Spiel fortsetzen“ wählt.

4. do while‑Anweisungs‑Codebeispiele

Einfaches Beispiel einer do while‑Anweisung

Hier ein einfaches Beispiel, wie man eine do while‑Anweisung verwendet:

#include <stdio.h>

int main() {
    int i = 0;

    do {
        printf("Count: %dn", i);
        i++;
    } while (i < 5);

    return 0;
}

In diesem Beispiel wird der Code im do‑Block zuerst ausgeführt, und die Schleife läuft weiter, solange i kleiner als 5 ist. Somit werden die Zahlen von 0 bis 4 ausgegeben.

Beispiel für Benutzereingaben

Hier ein Beispiel, bei dem das Programm weiter schleift, bis der Benutzer einen Wert innerhalb eines bestimmten Bereichs eingibt:

#include <stdio.h>

int main() {
    int number;

    do {
        printf("Please enter a number between 1 and 10: ");
        scanf("%d", &number);
    } while (number < 1 || number > 10);

    printf("You entered: %dn", number);

    return 0;
}

In diesem Code wird, wenn der Benutzer eine Zahl außerhalb des Bereichs 1 bis 10 eingibt, erneut nach einer Eingabe gefragt, wobei die Schleife wiederholt wird, bis eine gültige Zahl eingegeben wird.

5. Endlosschleifen und Steuerung

Erstellen einer Endlosschleife

Man kann mit einer do while‑Anweisung eine Endlosschleife erzeugen, indem man die Bedingung immer true setzt. Eine Endlosschleife wiederholt sich unendlich.

do {
    // Code that repeats forever
} while (1);

Wie man Endlosschleifen steuert

Um Endlosschleifen zu steuern, verwendet man break‑ und continue‑Anweisungen:

  • break‑Anweisung : Wird verwendet, um die Schleife zu verlassen.
  • continue‑Anweisung : Überspringt den Rest der Schleife und startet die nächste Iteration.

Hier ein Beispiel, das break in einer Endlosschleife verwendet:

#include <stdio.h>

int main() {
    int count = 0;

    do {
        printf("Loop count: %dn", count);
        count++;
        if (count > 5) {
            break;
        }
    } while (1);

    return 0;
}

In diesem Code wird die break‑Anweisung ausgelöst, wenn count größer als 5 wird, wodurch die Schleife beendet wird.

6. Verwendung mehrerer Bedingungen in einer do while‑Anweisung

Wie man mehrere Bedingungen verwendet

In einer do while‑Anweisung kann man mehrere Bedingungen mit logischen Operatoren wie && (UND) und || (ODER) kombinieren.

do {
    // Code to execute
} while (condition1 && condition2);

Beispiel mit komplexen Bedingungen

Das folgende Beispiel prüft, ob die Benutzereingabe im Bereich von 1 bis 100 liegt. Falls nicht, wird erneut nach einer Eingabe gefragt:

#include <stdio.h>

int main() {
    int number;

    do {
        printf("Please enter a number between 1 and 100: ");
        scanf("%d", &number);
    } while (number < 1 || number > 100);

    printf("You entered: %dn", number);

    return 0;
}

Dieser Code fragt weiter nach einer Eingabe, bis der eingegebene Wert zwischen 1 und 100 liegt.

7. Zusammenfassung

Die do while‑Anweisung ist nützlich, wenn Sie sicherstellen müssen, dass der Schleifenkörper mindestens einmal ausgeführt wird. Durch die Wahl zwischen while und do while können Sie flexiblere Programme schreiben. Sie können Schleifen auch mit break und continue steuern und mehrere Bedingungen für fortgeschrittene Szenarien verwenden. Das Beherrschen dieser Techniken hilft Ihnen, Schleifen in C effektiv zu handhaben.

8. Übungsaufgaben und Beispielantworten

Übungsaufgabe

Schreiben Sie ein Programm, das den Benutzer auffordert, eine ganze Zahl zwischen 1 und 10 einzugeben, und so lange nach einer Eingabe fragt, bis eine gültige Eingabe erfolgt. Wenn eine gültige Zahl eingegeben wurde, geben Sie das Doppelte aus.

Beispielantwort

#include <stdio.h>

int main() {
    int number;

    do {
        printf("Please enter a number between 1 and 10: ");
        scanf("%d", &number);
    } while (number < 1 || number > 10);

    printf("Double the entered number: %dn", number * 2);

    return 0;
}

Diese Übungsaufgabe zeigt, wie man eine do while‑Schleife verwendet, um Benutzereingaben zu validieren und bei außerhalb des Bereichs liegenden Werten erneut zu fragen.

9. Verwandte Informationen und nächste Schritte

Sobald Sie die do while‑Anweisung verstanden haben, ist es hilfreich zu lernen, wie man zwischen verschiedenen Schleifentypen (for, while, do while) wählt. Ein weiteres wichtiges Thema in C ist „Pointer“. Das Verständnis von Pointern ermöglicht es Ihnen, noch fortgeschrittenere Programme zu schreiben, also sollten Sie dies als Nächstes erkunden.