if-Anweisung
Die if
-Anweisung gibt es mit und ohne else
. In der einfachen Version (also ohne else
bzw. sonst) wird ein Programmblock ausgeführt, wenn eine oder mehrere Bedingungen erfüllt sind:
if(password == 1234) {
System.out.println("Zugang gestattet");
}
Wenn die Variable password
dem Wert 1234 entspricht, dann wird Zugang gestattet ausgegeben. Stimmt das Passwort nicht überein, dann passiert nichts. Häufig möchte man an dieser Stelle den Benutzer aber darauf hinweisen, dass die Überprüfung ergeben hat, dass seine Eingabe falsch gewesen ist. Dafür gibt es den else
-Block ("sonst"), der ausgeführt wird, wenn die Bedingung nicht erfüllt ist:
if(password == 1234) {
System.out.println("Zugang gestattet");
} else {
System.out.println("Eingabe falsch");
}
In diesem zweiten Beispiel wird wie zuvor Zugang gestattet ausgegeben, wenn die Eingabe mit dem Wert 1234 übereinstimmt, aber jetzt auch Eingabe falsch, wenn die Eingabe nicht diesem Wert entspricht. Dann merkt der Benutzer auf jeden Fall, dass eine Überprüfung seiner Eingabe stattgefunden hat.
Man kann if
-Anweisungen auch verschachteln: Stellen Sie sich eine Einlasskontrolle beim Kino vor. Kinder unter 8 Jahren dürfen einen bestimmten Film nicht sehen. Kinder, die jünger als 12 Jahre, aber mindestens 8 Jahre alt sind, dürfen den Film in Begleitung eines Erziehungsberechtigten sehen. Kinder ab 12 Jahren dürfen den Film auch ohne Begleitung anschauen. Hier kommt die Umsetzung mit zwei verschachtelten if
-else
-Anweisungen:
int eingabe = Input.readInt("Wie alt sind Sie?");
if(eingabe < 8) {
System.out.println("Sie sind zu jung für diesen Kinofilm!");
} else {
if(eingabe < 12) {
System.out.println("Sie dürfen den Film nur in Begleitung sehen.");
} else {
System.out.println("Viel Vergnügen!");
}
}
Die Eingabe des Alters wird in der ganzzahligen Variablen eingabe
gespeichert. Dann erfolgt die erste Überprüfung, ob die Eingabe kleiner als 8 ist. Trifft dies zu, dann wird entsprechend ausgegeben, dass man zu jung für diesen Kinofilm sei. Ist man jedoch mindestens 8 Jahre alt, dann wird der erste else
-Block ausgeführt. Hier erfolgt dann gleich die nächste Überprüfung, ob die Eingabe kleiner als 12 ist. Sollte dies zutreffen, dann erscheint Sie dürfen den Film nur in Begleitung sehen auf dem Bildschirm. Ist man jedoch mindestens 12 Jahre alt, dann sieht man die Ausgabe des zweiten else
-Blocks mit dem Hinweis Viel Vergnügen. Eine generelle Empfehlung: Das Einrücken der Programmzeilen erhöht die Lesbarkeit ungemein und macht die Fehlersuche deutlich leichter!
Die folgende Version kommt ohne Verschachtelung aus:
int eingabe = Input.readInt("Wie alt sind Sie?");
if(eingabe < 8) {
System.out.println("Sie sind zu jung für diesen Kinofilm!");
}
if(eingabe >= 8 && eingabe < 12) {
System.out.println("Sie dürfen den Film nur in Begleitung sehen.");
}
if(eingabe >= 12) {
System.out.println("Viel Vergnügen!");
}
Das && in Zeile 5 ist in Java eine logische UND-Verknüpfung. Das bedeutet, dass beide Bedingungen erfüllt sein müssen. Die Eingabe muss größer oder gleich 8 sein und außerdem kleiner als 12.