Java Reference
In-Depth Information
// Beispiel 3
if (vornFrei()) {
vor();
} else if (kornDa()) {
nimm();
} else if (!maulLeer()) {
gib();
} else {
linksUm();
}
Beispiel 3 demonstriert eine geschachtelte if-Anweisung, d.h. die false-Anweisung ist wiederum
eine if-Anweisung. Wenn der Testbefehl vornFrei() den Wert true liefert, dann wird die true-
Anweisung, also der Befehl vor(); ausgeführt, und das Beispiel ist beendet. Wenn die Kachel vor
dem Hamster allerdings durch eine Mauer blockiert ist, d.h. die Auswertung der ersten Bedingung
den Wert false ergibt, dann wird die false-Anweisung ausgeführt. Hierbei handelt es sich wie-
der um eine if-Anweisung. Liefert der Testbefehl kornDa() den Wert true , dann wird der Befehl
nimm(); als true-Anweisung ausgeführt, und das Beispiel ist beendet. Liefert jedoch auch diese
zweite Bedingung den Wert false , dann wird der zweite else-Teil „aktiv“. Wiederum handelt es
sich bei der false-Anweisung um eine if-Anweisung. Liefert der boolesche Ausdruck !maulLeer
den Wert true , dann legt der Hamster ein Korn ab, ansonsten dreht er sich um 90 Grad nach links.
Insgesamt lässt sich feststellen, dass der Hamster unabhängig von der Situation, in der er sich gerade
befindet, beim Aufruf von Beispiel 3 immer genau einen Grundbefehl ausführt.
// Beispiel 4a
if (vornFrei())
if (kornDa())
nimm();
else
vor();
// Beispiel 4b
if (vornFrei()) {
if (kornDa())
nimm();
} else
vor();
// Beispiel 4c
if (vornFrei()) {
if (kornDa()) {
nimm();
} else {
vor();
}
}
Beispiel 4a ist auf den ersten Blick mehrdeutig: Es ist nicht klar, ob der else-Teil zum ersten if oder
Search WWH ::




Custom Search