Helmichs Informatik-Lexikon

do-while-Schleifen

Beispiel

Hier zunächst einmal ein typisches Anwendungsbeispiel für eine do-while-Schleife:

1   int strecke = 0;
2   do
3   {
4      fahren(1);
5      anzeigen();
6      strecke++;
7   }
8   while (strecke < 50);
9   System.out.println(strecke);

Zeile 2 enthält den Schleifenkopf. Auf das Schlüsselwort do folgt der Schleifenkörper , der entweder

  • aus einer einzelnen Anweisung oder
  • aus einer Anweisungsliste besteht, also mehreren Anweisungen, die zwischen geschweiften Klammern stehen müssen.

In unserem Beispiel besteht der Schleifenkörper aus einer Anweisungsliste mit drei Anweisungen. Das Objekt soll 1 km fahren, dann sollen bestimmte Werte angezeigt werden (Kilometerstand, Benzinstand etc.), dann wird die lokale Variable strecke um 1 erhöht.

In Zeile 8 folgt das Schlüsselwort while und danach die Schleifenbedingung. Solange diese Bedingung true ist, wenn also der Wert von strecke noch kleiner ist als 50, wird zur ersten Anweisung des Schleifenkörpers zurück gesprungen.

Nach Abarbeiten aller Anweisungen des Schleifenkörpers wird die Schleifenbedingung erneut überprüft. Wenn sie nicht mehr erfüllt sein sollte, wird die Anweisung ausgeführt, die nach der do-while-Schleife kommt, hier also der Ausgabe-Befehl in Zeile 9.

Programmfluss und Syntax

Hier das Flussdiagramm, passend zur while-Schleife im obigen Beispiel. Dieses Bild entstammt der Folge 4.2 des Java-Kurses. Außerdem sehen wir hier ein Syntaxdiagramm einer do-while-Schleife.

Während while-Schleife vorprüfend sind, sind do-while-Schleifen nachprüfend. In manchen Quellen liest man auch die Begiffe kopfgesteuert und fußgesteuert.

Der für die Praxis wichtigste Vorteil der do-while-Schleifen ist wohl der, dass diese Schleife auf jeden Fall einmal durchlaufen wird, da die Schleifenbedingung erst nach dem ersten Durchlauf überprüft wird.

do-while-Schleifen sind nachprüfende Schleifen. Die Schleifenbedingung wird erst nach dem jeweiligen Schleifendurchlauf überprüft. Daher werden do-while-Schleifen mindestens einmal durchlaufen.