Java Reference
In-Depth Information
9.6.3 Semantik
Wird eine Alternativanweisung ausgeführt, dann wird zunächst der Wert der Bedingung (boolescher
Ausdruck) ermittelt. Ist die Bedingung erfüllt, d.h. liefert der boolesche Ausdruck den Wert true ,
dann wird die true-Anweisung nicht aber die false-Anweisung ausgeführt; liefert der boolesche Aus-
druck den Wert false , dann wird die false-Anweisung nicht aber die true-Anweisung ausgeführt.
9.6.4 Beispiele
Die folgenden Beispiele sollen die Alternativanweisung verdeutlichen.
// Beispiel 1
if (vornFrei()) {
vor();
} else {
linksUm();
}
Steht der Hamster bei der Ausführung von Beispiel 1 nicht vor einer Mauer, d.h. der Testbefehl
vornFrei() liefert den Wert true , dann wird die true-Anweisung ausgeführt: Der Hamster hüpft
eine Kachel nach vorne. Steht er jedoch vor einer Mauer, dann wird die false-Anweisung ausgeführt:
Der Hamster dreht sich um 90 Grad nach links.
// Beispiel 2a
if (maulLeer())
;
else
gib();
linksUm();
// Beispiel 2b
if (!maulLeer()) {
gib();
}
linksUm();
In Beispiel 2a wird die true-Anweisung durch eine Leeranweisung gebildet, d.h. hat der Hamster
kein Korn im Maul, so passiert nichts. Der else-Teil enthält den gib(); -Befehl, d.h. hat der Hams-
ter ein Korn im Maul, so legt er eines ab. Der linksUm(); -Befehl gehört nicht mehr zur Alternati-
vanweisung und wird in beiden Fällen ausgeführt. Beispiel 2a ist zwar syntaktisch korrekt, statt der
Verwendung der Leeranweisung sollte jedoch sinnvollerweise die Bedingung negiert werden, wie
in Beispiel 2b. Beispiel 2b ist semantisch äquivalent zu Beispiel 2a, d.h. die beiden Beispiele haben
exakt dieselben Auswirkungen.
Search WWH ::




Custom Search