next up previous contents index
Next: 2.5 Wiederholungsanweisungen Up: 2. Das imperative Hamster-Modell Previous: 2.3 Prozeduren

Unterabschnitte

  
2.4 Auswahlanweisungen

Auswahlanweisungen  dienen dazu, bestimmte Anweisungen nur unter bestimmten Bedingungen ausführen zu lassen.

2.4.1 Testbefehle

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 ):

2.4.2 Boolesche Operatoren und Ausdrücke

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:

Der Operator ! hat eine höhere Priorität als der Operator &&, der wiederum eine höhere Priorität als der Operator || besitzt. Durch Einschließen von booleschen Ausdrücken in runde Klammern können Sie die Abarbeitungsfolge der Operatoren beeinflussen.

2.4.3 Blockanweisung

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.

2.4.4 Bedingte Anweisung

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.

2.4.5 Alternativanweisung

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.

2.4.6 Beispielprogramm

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();
    }
  }


next up previous contents index
Next: 2.5 Wiederholungsanweisungen Up: 2. Das imperative Hamster-Modell Previous: 2.3 Prozeduren
Dietrich Boles
2004-10-05