Die if-Verzweigung führt Anweisungen nach Prüfung einer Bedingung aus.

Die if-Verzweigung dient dazu, eine oder mehrere Anweisungen auszuführen, je nachdem ob eine Bedingung wahr (true) oder unwahr (false) ist.

Grundstruktur der if-Verzweigung

Nach dem Schlüsselwort if wird in runden Klammern ein boolscher Ausdruck angegeben, also ein Ausdruck, der entweder true oder false annehmen kann. Hiernach folgt ein Code-Block, der durch geschweifte Klammern ({}) gekennzeichnet ist. In ihn müssen alle Ausdrücke eingefügt werden, die in dem Falle ausgeführt werden, dass die Bedingung in den Klammern true liefert.
Es muss darauf geachtet werden, dass der boolsche Ausdruck in runden Klammern als Ganzes ausgewertet wird. Hier sind also auch zusammengesetzte boolsche Ausdrücke zulässig.

Im ersten Beispiel wird mit dem Ausdruck new Random().nextInt(11) eine Pseudo-Zufallszahl zwischen 0 und 10 erzeugt. In der if-Verzweigung wird dann geprüft, ob dieser Wert kleiner 6 ist. Ist dies der Fall, so wir eine Ausgabe generiert.

import java.util.Random;
public class IfClass {   
    public static void main(String[] args){
        int i = new Random().nextInt(11);
        if(i < 6) {
            System.out.println("i ist kleiner 6: " + i);
        }
    }
}

Erweiterung der if-Verzweigung

Für Fälle, in denen dies nicht der Fall ist, kann die Verzweigung durch eine else-Anweisung erweitert werden. Hierzu muss nach dem Schließen des Blockes das Schlüsselwort else gefolgt von einem weiteren Block notiert werden. Das folgende Beispiel demonstriert dies für den Fall, dass die erzeugte Zufallszahl nicht kleiner 6 ist.

import java.util.Random;
public class IfClass {   
    public static void main(String[] args){
        int i = new Random().nextInt(11);
        if(i < 6) {
            System.out.println("i ist kleiner 6: " + i);
        } else {
            System.out.println("i ist nicht kleiner 6: " + i);
        }
    }
}

Möchte man die Abfrage hinsichtlich weiterer Fälle spezifizieren, so lässt sich die Verzweigung noch erweiteren. Zwischen dem if- und dem else-Block können eine oder mehrere weitere bedingte Anweisungen erfolgen, indem mit else if, gefolgt von einer boolschen Bedingungsabfrage auf eine oder mehrere weitere Bedingungen gefiltert wird.
Das Beispiel demonstriert dies durch Abfrage der Zufallszahl auf die Werte 8 und 4. Nach den Schlüsselworten else if wird wiederum i über einen boolschen Ausdruck geprüft und je nach Ergebnis eine Ausgabe generiert.

import java.util.Random;
public class IfClass {   
    public static void main(String[] args){
        int i = new Random().nextInt(11);
        if(i < 6) {
            System.out.println("i ist kleiner 6: " + i);
        } else if(i == 8) {
            System.out.println("i ist gleich 8: " + i);
        } else if(i == 4) {    // nicht erreichbar
            System.out.println("i ist gleich 4: " + i);
        } else {
            System.out.println("i ist nicht kleiner 6: " + i);
        }
    }
}

Hier wird noch ein weiterer Aspekt gezeigt: Die gesamte if-else-Verzweigung wird von oben nach unten ausgewertet und beim Erfüllen einer Bedingung abgebrochen. Das Filtern auf den Wert 4 wird im obigen Beispiel nicht ausgeführt, da bereits im ersten Block abgefragt wird, ob i kleiner 6 ist, was in diesem Fall true liefert und somit die Abfrage terminiert.