11.2.2
Do-While-Schleife |
|
do {..} while(..) | Eine weitere Art eine Iteration zu realisieren ist die do Schleife. In der Normsprache hat sie folgende Gestalt: |
Normsprache |
Wiederhole
Anweisung|Anweisungsblock solange (Bedingung wahr) Vor dem Einstieg in den Schleifenkörper findet, anders als bei der while-Schleife keine Abfrage statt. Es werden also auf jeden Fall alle Anweisungen des Schleifenkörpers abgearbeitet. Ob nach diesem ersten Durchgang weitere stattfinden sollen, wird nach dem Schleifenkörper abgefragt: Ein boolescher Ausdruck (Weiter-Machen-Bedingung) wird ausgewertet, ist er true, beginnt der Rechner erneut mit dem Abarbeitung der Anweisungen im Schleifenkörper. Erst wenn die "Weiter-Machen-Bedingung" false ist, wird der Schleifenkörper nicht wieder durchlaufen und der Rechner setzt das Abarbeiten des Programms nach der Schleife fort. Wir sehen, im Schleifenkörper muss wieder eine Veränderung stattfinden, die es erlaubt, dass die "Weiter-Machen-Bedingung" möglicherweise zu false ausgewertet wird.
|
Struktogramm | Das
Struktogramm verdeutlicht den Unterschied zur
while-Schleife.
Dort wird das Durchlaufen der Schleife durch ein 'Vorbedingung', hier
durch eine 'Nachbedingung' gesteuert.
Im Gegensatz zur while-Schleife, kann man bei der do-Schleife mindestens einen Schleifendurchgang garantieren.
|
Java-Syntax |
do { Anweisung1; Anweisung2; .... Anweisung_n; } while(<Bedingung>) |
Beispiel 1
Download: |
Es soll
zu einem eingegeben Wert n die Summe der ersten n natürliche Zahlen
bestimmt werden.
|
Beispiel 2: Iteratives Berechnen der Quadratwurzel Download:
|
In unserem Programm wird die Quadratwurzel von 2 über eine Folge berechnet:
Der Schleifenabbruch geschieht, wenn Java die Näherungswerte zweier aufeinander folgenden Iterationen für Wurzel von 2 nicht mehr unterscheiden kann, oder näher an der Idee der do-while-Schleife formuliert: Die Iteration läuft solange Java die Werte zweier aufeinander folgender Iterationen unterscheiden kann. Es handelt sich also um keine mathematische Abbruchbedingung.
|
zu 11.2.3 | |
zur Startseite | www.pohlig.de (C) MPohlig 2003 |