06.08.2013 Aufrufe

PDF-Datei (ca. 1 MByte)

PDF-Datei (ca. 1 MByte)

PDF-Datei (ca. 1 MByte)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

110 KAPITEL 10. WIEDERHOLUNGSANWEISUNGEN<br />

erfullt, wird die Iterationsanweisung ein zweites Mal ausgefuhrt und danach erneut die Schleifenbedingung<br />

ausgewertet. Dieser Proze wiederholt sich solange, bis irgendwann einmal die<br />

Schleifenbedingung nicht mehr erfullt ist.<br />

Wie Sie sehen, besteht der einzige Unterschied zwischen der do- und der while-Anweisung darin,<br />

da bei der do-Anweisung die Iterationsanweisung mindestens einmal ausgefuhrt wird, was bei<br />

der while-Anweisung nicht unbedingt der Fall sein mu . In der Tat la t sich jede do-Anweisung<br />

leicht durch eine while-Anweisung ersetzen. Sei anw Platzhalter fur eine beliebige Anweisung und<br />

sei bA Platzhalter fur einen beliebigen booleschen Ausdruck, dann sind die beiden folgenden Programmfragmente<br />

semantisch aquivalent, d.h. ihre Ausfuhrungen haben dieselben Auswirkungen<br />

auf den Zustand eines Programmes:<br />

// Programmfragment 1<br />

do<br />

{<br />

anw<br />

} while (bA);<br />

// Programmfragment 2<br />

anw<br />

while (bA)<br />

{<br />

anw<br />

}<br />

10.3.3 Beispiele<br />

10.3.3.1 Beispiel 1<br />

Der Hamster habe eine bestimmte Anzahl (>0) an Kornern im Maul, die er alle ablegen soll:<br />

void main()<br />

{<br />

do<br />

{<br />

gib();<br />

} while (!maul_leer());<br />

}<br />

Da in der Aufgabenstellung vorgegeben wurde, da die Anzahl an Kornern im Maul gro er als<br />

Null ist, kann zur Losung eine do-Anweisung verwendet werden. Der Hamster legt also zunachst<br />

ein Korn ab, bevor er die Schleifenbedingung ein erstes Mal testet.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!