Suche
Suche Menü

Do while Schleife

while und for sind sogenannte kopfgesteuerte Schleifen. D.h., dass der Kontrollpunkt als erstes vor jedem Durchlauf ausgeführt wird. Soll zuerst der Schleifen-Block ausgeführt und dann die Bedingung für einen erneuten Durchlauf geprüft werden, verwenden wir die do while Schleife. Diese ist also eine fußgesteuerte Schleife.

In den vergangenen Beispielen haben wir gesehen, dass es immer sinnvoll ist, einen Durchlauf-Zähler zu verwenden, um das Ende der Schleife festzulegen. Die Durchlauf-Bedingung kann man aber auch von anderen Dingen abhängig machen, z.B. von Tastatureingaben. Erwarten wir vom Benutzer eine bestimmte Eingabe, eignet sich dafür die do while Schleife. Hierbei lesen wir im Schleifen-Block zuerst die Eingabe ein und werten diese dann beim Kontrollpunkt aus. Liegt die Eingabe nicht in dem von uns gewünschten Format vor, wird vom Benutzer erneut eine Eingabe gefordert.

Nehmen wir an, wir benötigen vom Benutzer die Eingabe seines Alters. In diesem Beispiel wird der Benutzer solange aufgefordert eine Zahl einzugeben, bis diese einem glaubhaften Alter entspricht. Ist die Eingabe kleiner 5 oder größer 100, wird der Schleifen-Block wiederholt.

int alter;

do {
    printf("\nBitte geben sie ihr Alter ein: ");
    scanf("%d", &alter);
} while(alter <  5 || alter > 100);

printf("Danke.\n");

Bitte geben sie ihr Alter ein: 2
Bitte geben sie ihr Alter ein: 101
Bitte geben sie ihr Alter ein: 200
Bitte geben sie ihr Alter ein: 33
Danke.

Wir leiten die Schleife mit dem Schlüsselwort do ein, danach kommt der Schleifen-Block { }. Im Block erledigen wir zuerst die Eingabe. Den Kontrollpunkt leiten wir mit dem Schlüsselwort while ein. Danach schreiben wir in Klammern die Durchlauf- bzw. Abbruch-Bedingung. Wichtig hierbei ist, dass die do while Schleife mit einem Strichpunkt ; abgeschlossen wird.