Zum Hauptinhalt springen

📖 if / else - Selektion

Mit dem Schlüsselwort if (engl. falls) in Kombination mit dem Datentyp boolean können Programme erstellt werden, die abhängig von Benutzereingaben oder Variablenwerten unterschiedlich reagieren.

Bedingungen und Vergleichsoperatoren

Anatomie

Eine Selektion mit einem if sieht so aus, wie im folgend dargestellt. Ein praktisches Beispiel zur Veranschaulichung kann ausgeklappt werden.

Hier ist nun eine if-Selektion mit drei möglichen Codeblock Anweisungen dargestellt. Im laufenden Programm wird immer nur eine der Anweisungen ausgeführt. Dies ermöglicht es dynamisch auf die Benutzereingabe zu reagieren indem je nach Eingabe einen anderen Code ausgeführt wird.

Die Bezeichnungen <Bedingung> und <Anweisung> dienen als Platzhalter. Sie sind sogenannter Pseudocode und somit nicht korrekter Java-Code. Im späteren praktischen Beispiel werden diese mit korrektem Java-Code ersetzt.

Aufbau einer if-Selektion

if (<Bedingung1>) {
<Anweisung1>
}
else if (<Bedingung2>) { // Optionaler Block
<Anweisung2>
}
else { // Optionaler Block
<Anweisung3>
}

Flow Diagram einer if-Selektion

  1. Der erste Block if (<Bedingung1>) { <Anweisung1> }
    • ist zwingend
    • und zwar von if bis zur ersten schliessenden geschweiften Klammer.
    • Wenn die <Bedingung1> wahr ist, wird nur die <Anweisung1> ausgeführt.
  1. Der nächste Block else if (<Bedingung2>) { <Anweisung2> }
    • Wenn die <Bedingung1> falsch und die <Bedingung2> wahr ist, wird nur die <Anweisung2> ausgeführt.
    • ist optional
    • kann auch noch mehrfach wiederholt folgen
    • kann nie alleine stehen (nie ohne vorausgehender if-Block)
    • wird ausgeführt, sofern die Bedingung vom vorausgehendem if oder else if Block false war
  1. Der letzte Block else { <Anweisung3> }
    • ist optional
    • besitzt keine Bedingung
    • darf nur ein Mal vorkommen, und zwar ganz am Schluss
    • wird ausgeführt wenn kein anderer Block ausgeführt wurde
    • Wenn die <Bedingung1> falsch und die <Bedingung2> falsch ist, wird nur die <Anweisung3> ausgeführt.

Praktisches Beispiel

Im praktischen Beispiel wollen wir herausfinden ob es sich um ein Kind, Jugendlicher oder Erwachsener handelt. Dazu existiert eine Variable int age in der das Alter gespeichert ist. In der if-Selektion wird nun das Alter geprüft und je nach Situation in die Console geschrieben ob es sich um ein Kind, Jugendlicher oder Erwachsener handelt.

Programmcode

int age = 14;

if (age < 12) {
System.out.println("Hallo Kind");
}
else if (age < 18) {
System.out.println("Hallo Jugendlicher");
}
else {
System.out.println("Hallo Erwachsener");
}
tip

Die Variable int age könnte nun auch von der Konsole eingelesen werden und somit "dynamisch" sein. Dann macht die Kondition auch mehr Sinn!

Flussdiagramm

Erläuterung

  1. Es existiert eine Variable age vom Typ int mit dem Wert 14
  2. Die if-Block Bedingung (Linie 3) wir ausgeführt
    • Die Bedingung prüft ob es sich um ein Kind handelt, also kleiner als 12 ist
    • Da der Wert von age 14 ist, ist der boolean der Prüfung false, also falsch
    • Der Code-Block (Linie 4) wird übersprungen
  3. Die else if Bedingung (Linie 6) wird nun ausgeführt
    • Es wird geprüft ob der Wert von age kleiner als 18 ist.
    • Da der Wert 14 kleiner als 18 ist, ist der boolean der Prüfung true, also richtig
    • Der else if-Block (Linie 7) wird ausgeführt.
  4. Da eine Bedingung true war, wird der else-Block (Linie 10) übersprungen!