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.