Auswahlanweisungen dienen dazu, bestimmte Anweisungen nur unter bestimmten Bedingungen ausführen zu lassen.
Um Laufzeitfehler zu vermeiden, die ja bspw. dadurch entstehen können, dass Sie dem Hamster den Befehl vor geben, obwohl er vor einer Mauer steht, existieren drei so genannte Testbefehle . Testbefehle liefern boolesche Werte, also wahr (true ) oder falsch (false ):
Die drei Testbefehle stellen einfache boolesche Ausdrücke dar. Ausdrücke sind Verarbeitungsvorschriften, die einen Wert berechnen und liefern. Boolesche Ausdrücke liefern einen booleschen Wert. Durch die Verknüpfung boolescher Ausdrücke mittels boolescher Operatoren lassen sich zusammengesetzte boolesche Ausdrücke bilden. Die Programmiersprache Java stellt drei boolesche Operatoren zur Verfügung:
Mit Hilfe der Blockanweisung lassen sich mehrere Anweisungen zu einer Einheit zusammenfassen. Syntaktisch gesehen handelt es sich bei einer Blockanweisung um eine zusammengesetzte Anweisung . Innerhalb von geschweiften Klammern steht eine andere Anweisung - im Allgemeinen eine Anweisungssequenz .
Beim Ausführen einer Blockanweisung werden die innerhalb der geschweiften Klammern stehenden Anweisungen ausgeführt.
Die bedingte Anweisung , die auch if-Anweisung genannt wird, ist eine zusammengesetzte Anweisung . Die bedingte Anweisung wird eingeleitet durch das Schlüsselwort if . Anschließend folgt innerhalb eines runden Klammernpaares ein boolescher Ausdruck und danach eine Anweisung. Bei dieser Anweisung, die im Folgenden true-Anweisung genannt wird, handelt es sich im Allgemeinen um eine Blockanweisung .
Beim Ausführen einer bedingten Anweisung wird zunächst der boolesche Ausdruck innerhalb der runden Klammern ausgewertet. Falls dieser Ausdruck den Wert true liefert, d.h. die Bedingung erfüllt ist, wird die true-Anweisung (daher der Name) ausgeführt. Liefert der boolesche Ausdruck den Wert false, dann wird die true-Anweisung nicht ausgeführt.
Die Alternativanweisung ist eine bedingte Anweisung mit einem angehängten so genannten else-Teil. Dieser besteht aus dem Schlüsselwort else und einer Anweisung (false-Anweisung ) - im Allgemeinen eine Blockanweisung. Die Alternativanweisung ist wie die bedingte Anweisung eine Auswahlanweisung .
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 Ausdruck den Wert false, dann wird die false-Anweisung nicht aber die true-Anweisung ausgeführt.
Im folgenden Beispielprogramm führt der Hamster die Blockanweisung mit dem vor- und dem linksUm-Befehl nur aus, wenn sich vor ihm keine Mauer befindet. Anschließend überprüft er, ob sich auf der aktuellen Kachel ein Korn befindet und gleichzeitig die Kachel vor ihm frei ist. Dann und nur dann nimmt er das Korn und springt eine Kachel nach vorne. Im anderen Fall dreht er sich um 90 Grad nach links.
void main() {
if (vornFrei()) { // bedingte Anweisung
vor();
linksUm();
}
if (kornDa() && vornFrei()) { // Alternativanweisung
nimm();
vor();
} else {
linksUm();
}
}