Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
86 KAPITEL 9. AUSWAHLANWEISUNGEN<br />
bedingte Anweisung<br />
Anweisung (5)<br />
Auswahlanweisung (1)<br />
9.5.3 Beispiele<br />
if<br />
boolescher<br />
( )<br />
Ausdruck<br />
Grundbefehl<br />
Prozeduraufruf<br />
Blockanweisung<br />
Leeranweisung<br />
Auswahlanweisung<br />
bedingte<br />
Anweisung<br />
Abbildung 9.7: Syntaxdiagramm: Bedingte Anweisung<br />
Folgende Anweisungen sind syntaktisch korrekte bedingte Anweisungen:<br />
1. if (vorn frei()) vor();<br />
2. if (korn da() && vorn frei()) f nimm(); vor(); g<br />
3. if (korn da()) if (vorn frei()) f nimm(); vor(); g<br />
Anweisung<br />
Bezuglich der Hamsterlandschaft in Abbildung 9.8 (links) wird der Hamster, wenn die bedingte<br />
Anweisung (1) ausgefuhrt wird, den Befehl vor(); ausfuhren, da der Testbefehl vorn frei()<br />
den Wert true liefert. Anders ist dies bezuglich der Situation in Abbildung 9.8 (rechts). Hier<br />
wird der Hamster bei Ausfuhrung von Anweisung (1) nichts tun, da der Testbefehl den Wert<br />
false liefert.<br />
Liegt auf der Kachel, auf der sich der Hamster in Abbildung 9.8 (links) be ndet, ein Korn, dann<br />
wird der Hamster bei Aufruf der bedingten Anweisung (2), da der boolesche Ausdruck den Wert<br />
true liefert, die Blockanweisung ausfuhren, d.h. er wird ein Korn fressen und anschlie end eine<br />
Kachel nach vorne hupfen.<br />
Die bedingte Anweisung (3) ist zur bedingten Anweisung (2) semantisch aquivalent, d.h. die<br />
beiden Anweisungen bewirken dasselbe. Anweisung (3) nutzt aus, da die bedingte Anweisung<br />
selbst wieder eine Anweisung ist, also auch selbst wieder als Anweisung in einer bedingten<br />
Anweisung auftreten darf.