📖 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.
- Der Datentyp
boolean
wird durch 👮 Bedingungen generiert und ist elementar für dieif
-Selektion. - Die Bedingungen wiederum kommen durch Vergleichsoperatoren zustande.
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
- 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.
- 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
oderelse if
Block false war
- Wenn die
- 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");
}
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
- Es existiert eine Variable age vom Typ
int
mit dem Wert14
- 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 derboolean
der Prüfungfalse
, also falsch - Der Code-Block (Linie 4) wird übersprungen
- 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üfungtrue
, also richtig - Der
else if
-Block (Linie 7) wird ausgeführt.
- Es wird geprüft ob der Wert von
- Da eine Bedingung
true
war, wird derelse
-Block (Linie 10) übersprungen!