if-Anweisung

Die if-Anweisung gibt es mit und ohne else. In der einfachen Version wird ein Programmblock ausgeführt, wenn eine Bedingung erfüllt ist:

if (password == 1234) {
    System.out.println("Zugang gestattet");
}

Wenn die Variable password dem Wert 1234 entspricht, wird Zugang gestattet ausgegeben. Stimmt das Passwort nicht überein, passiert nichts.

Häufig möchte man jedoch auch auf den anderen Fall reagieren. Dafür gibt es den else-Block:

if (password == 1234) {
    System.out.println("Zugang gestattet");
} else {
    System.out.println("Eingabe falsch");
}

In diesem Beispiel wird entweder Zugang gestattet oder Eingabe falsch ausgegeben.

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.

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. Zunächst wird überprüft, ob die Eingabe kleiner als 8 ist. Ist das nicht der Fall, erfolgt im else-Block die nächste Überprüfung.

Eine generelle Empfehlung: Das Einrücken der Programmzeilen erhöht die Lesbarkeit erheblich 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 && ist in Java eine logische UND-Verknüpfung. Beide Bedingungen müssen also erfüllt sein: Die Eingabe muss größer oder gleich 8 und gleichzeitig kleiner als 12 sein.