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.

90 KAPITEL 9. AUSWAHLANWEISUNGEN<br />

Hamster ein Korn im Maul, so legt er eines ab. Der links um();-Befehl gehort nicht mehr<br />

zur Alternativanweisung und wird in beiden Fallen ausgefuhrt. Beispiel 2a ist zwar syntaktisch<br />

korrekt, statt der Verwendung der Leeranweisung sollte jedoch sinnvollerweise die Bedingung<br />

negiert werden, wie in Beispiel 2b. Beispiel 2b ist semantisch aquivalent zu Beispiel 2a.<br />

// Beispiel 3<br />

if (vorn_frei())<br />

vor();<br />

else if (korn_da())<br />

nimm();<br />

else if (!maul_leer())<br />

gib();<br />

else<br />

links_um();<br />

Beispiel 3 zeigt, da die false-Anweisung selbst wieder eine zusammengesetzte Anweisung, insbesondere<br />

also auch wieder eine Alternativanweisung sein darf. Auswahlanweisungen lassen sich<br />

dadurch schachteln. Wenn der Testbefehl vorn frei() den Wert true liefert, dann wird die<br />

true-Anweisung, also der Befehl vor(); ausgefuhrt, und das Beispiel ist beendet. Wenn die Kachel<br />

vor dem Hamster allerdings durch eine Mauer blockiert ist, d.h. die Auswertung der ersten<br />

Bedingung den Wert false ergibt, dann wird die false-Anweisung ausgefuhrt. Hierbei handelt es<br />

sich wieder um eine Alternativauswahl. Liefert der Testbefehl korn da() den Wert true, dann<br />

wird der Befehl nimm(); als true-Anweisung ausgefuhrt, und das Beispiel ist beendet. Liefert<br />

jedoch auch diese zweite Bedingung den Wert false, dann wird der zweite else-Teil " aktiv\.<br />

Wiederum handelt es sich bei der false-Anweisung um eine Alternativanweisung. Liefert der<br />

boolesche Ausdruck !maul leer den Wert true, dann legt der Hamster ein Korn ab, ansonsten<br />

dreht er sich um 90 Grad nach links. Insgesamt la t sich feststellen, da der Hamster unabhangig<br />

von der Situation, in der er sich gerade be ndet, beim Aufruf von Beispiel 3 immer genau einen<br />

Grundbefehl ausfuhrt.<br />

// Beispiel 4a<br />

if (vorn_frei())<br />

if (korn_da())<br />

nimm();<br />

else<br />

vor();<br />

// Beispiel 4b<br />

if (vorn_frei())<br />

{<br />

if (korn_da())<br />

nimm();<br />

}<br />

else<br />

vor();<br />

// Beispiel 4c

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!