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.

9.6. ALTERNATIVANWEISUNG 91<br />

if (vorn_frei())<br />

{<br />

if (korn_da())<br />

{<br />

nimm();<br />

}<br />

else<br />

{<br />

vor();<br />

}<br />

}<br />

Beispiel 4a ist auf den ersten Blick mehrdeutig: Es ist nicht klar, ob der else-Teil zum ersten<br />

if oder zum zweiten if gehort. Dieses ist jedoch in der Hamstersprache eindeutig de niert: In<br />

geschachtelten Auswahlanweisungen gehort ein else-Teil immer zum innersten if.<br />

In Beispiel 4a bildet der else-Teil also den else-Teil der korn da()- und nicht der vorn frei()-<br />

Bedingung. Die Anweisung in Beispiel 4a ist eine bedingte Anweisung, deren true-Anweisung<br />

durch eine Alternativanweisung gebildet wird. Ist die Kachel vor dem Hamster blockiert, d.h. der<br />

boolesche Ausdruck vorn frei() liefert den Wert false, dann ist das Beispiel beendet. Wird<br />

dagegen der Wert true ermittelt, dann wird die (innere) Alternativanweisung ausgefuhrt.<br />

Soll der else-Teil nicht zum inneren sondern zu einem au eren if gehoren, so mussen Klammern<br />

verwendet werden wie in Beispiel 4b. Die Anweisung in Beispiel 4b ist eine Alternativanweisung,<br />

deren true-Anweisung aus einer Blockanweisung besteht, die eine bedingte Anweisung enthalt.<br />

Um Mi verstandnissen bzw. Fehlern vorzubeugen, sollten Sie auch bei den Alternativanweisungen<br />

die true- und false-Anweisung jeweils durch eine Blockanweisung " kapseln\. Nutzen Sie also<br />

anstelle der verkurzten Schreibweise in Beispiel 4a moglichst die etwas langere dafur aber " sicherere\<br />

Schreibweise von Beispiel 4c. Achten Sie auch auf eine ubersichliche Einruckung der<br />

entsprechenden Teile.<br />

9.6.4 Anmerkungen<br />

Schauen Sie sich die folgenden beiden Anweisungen an. bA sei dabei Platzhalter fur einen beliebigen<br />

booleschen Ausdruck, und a1 und a2 seien Platzhalter fur beliebige Anweisungen:<br />

// Anweisung 1<br />

if (bA)<br />

a1;<br />

else<br />

a2;<br />

// Anweisung 2<br />

if (bA)<br />

a1;<br />

if (!bA)<br />

a2;

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!