Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
100 KAPITEL 10. WIEDERHOLUNGSANWEISUNGEN<br />
Schauen Sie sich nun die Hamsterlandschaft in Abbildung 10.1 (rechts) an. Auch fur diese<br />
Situation soll ein Hamsterprogramm geschrieben werden, das den Hamster in Blickrichtung bis<br />
zur nachsten Wand laufen la t:<br />
void main()<br />
{<br />
vor();<br />
vor();<br />
vor();<br />
vor();<br />
}<br />
Beide Programme losen das Problem, da der Hamster bis zur nachsten Wand laufen soll, jeweils<br />
fur eine fest vorgegebene Landschaft. Viel exibler ware es, wenn wir ein Programm entwickeln<br />
konnten, da beide obigen Probleme bzw. allgemein Probleme folgender Art lost: Der Hamster<br />
stehe auf einer Kachel der Hamsterlandschaft. Irgendwo in Blickrichtung vor ihm be ndet sich<br />
eine Mauer. Der Hamster soll bis zu dieser Mauer laufen und dann anhalten. Zur Losung dieses<br />
Problems benotigen wir eine Anweisung der Art: solange vorne frei ist, hupfe eine Kachel<br />
nach vorne, oder allgemeiner: solange eine bestimmte Bedingung erfullt ist, fuhre eine bestimmte<br />
Aktion aus, bzw. praziser mit den Hilfsmitteln der Hamstersprache formuliert: solange ein boolescher<br />
Ausdruck den Wert true liefert, fuhre eine gegebene Anweisung (wiederholt) aus. In der<br />
Hamstersprache existieren zwei Alternativen zur Formulierung derartiger Wiederholungsanweisungen,<br />
die while-Anweisung und die do-Anweisung.<br />
10.2 while-Anweisung<br />
Mit Hilfe der while-Anweisung { auch while-Schleife genannt {la t sich in der Hamstersprache<br />
eine Anweisung in Abhangigkeit eines booleschen Ausdrucks beliebig oft wiederholt ausfuhren.<br />
10.2.1 Syntax<br />
Die genaue Syntax der while-Anweisung kann Abbildung 10.2 entnommen werden.<br />
Die while-Anweisung ist eine zusammengesetzte Anweisung. Nach dem Schlusselwort while steht<br />
in runden Klammern ein boolescher Ausdruck, die sogenannte Schleifenbedingung. Anschlie end<br />
folgt die Anweisung, die evtl. wiederholt ausgefuhrt werden soll. Sie wird auch Iterationsanweisung<br />
genannt. Hierbei handelt es sich im allgemeinen um eine Blockanweisung.<br />
In Abbildung 10.2 wird das Syntaxdiagramm " Anweisung\ aus Abbildung 9.7 erweitert.<br />
10.2.2 Semantik<br />
Bei der Ausfuhrung einer while-Anweisung wird zunachst uberpruft, ob die Schleifenbedingung<br />
erfullt ist, d.h. ob der boolesche Ausdruck den Wert true liefert. Falls dies nicht der Fall ist,