Java Bedingungen: if, else und switch einfach erklärt

Aktualisiert am 22. Oktober 2026

Mit Bedingungen trifft ein Java-Programm Entscheidungen: Je nach Eingabe wird der eine oder der andere Teil ausgeführt. Ohne sie läuft es stur von oben nach unten, wie die ersten Beispiele zu Ein- und Ausgabe in Java.

if, else if, else

Hinter if steht in runden Klammern eine Bedingung. Ist sie wahr, läuft der Block in den geschweiften Klammern. Sonst geht es mit else if (nächste Bedingung) oder else (alle übrigen Fälle) weiter. Java prüft von oben nach unten und nimmt nur den ersten passenden Zweig.

Zum Vergleichen gibt es == (gleich), != (ungleich), <, <=, > und >=.

import java.util.Scanner;
public class Main {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        int temperature = scanner.nextInt();        if (temperature < 0) {            System.out.println("Coat and scarf!");        } else if (temperature < 15) {            System.out.println("Take a jacket.");        } else {            System.out.println("T-shirt weather.");        }    }}
Eingabe
12

Bei der Eingabe 12 ist temperature < 0 falsch und temperature < 15 wahr, deshalb gibt das Programm Take a jacket. aus. Bei 15 wären beide Bedingungen falsch, und das Programm würde im else landen.

Wahrheitswerte und Verknüpfungen

Eine Bedingung ist ein Wert vom Typ boolean: true oder false. Du kannst ihn in einer Variablen speichern und verknüpfen:

  • a && b: beides muss wahr sein (und)
  • a || b: mindestens eines muss wahr sein (oder)
  • !a: dreht den Wert um (nicht)

&& bindet stärker als ||. Setz im Zweifel Klammern, dann ist es auch beim Lesen klar.

Texte vergleichst du mit equals, nicht mit ==: command.equals("stop"). Mehr dazu steht im Artikel über Strings in Java.

public class Main {    public static void main(String[] args) {        int hour = 14;        boolean weekend = false;        boolean holiday = true;
        boolean openingHours = hour >= 9 && hour < 18;        boolean open = openingHours && !(weekend || holiday);        System.out.println("Opening hours: " + openingHours);        System.out.println("Library open: " + open);
        String command = "stop";        System.out.println(command.equals("stop"));    }}

switch

Prüfst du eine Variable gegen mehrere feste Werte, ist switch übersichtlicher als eine lange else if-Kette. Jeder Fall steht hinter case, nach dem Pfeil -> kommt, was passieren soll. Mehrere Werte trennst du mit Komma. default deckt alle übrigen Werte ab. switch funktioniert mit ganzen Zahlen, mit Texten und mit Enums in Java.

Ein switch kann auch einen Wert liefern (Switch-Ausdruck). Dann steht er rechts vom = oder hinter return, endet mit einem Semikolon und braucht für jeden möglichen Wert einen Fall, meist über default.

import java.util.Scanner;
public class Main {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        String day = scanner.nextLine();        switch (day) {            case "Saturday", "Sunday" -> System.out.println("Weekend!");            case "Friday" -> System.out.println("Almost weekend.");            default -> System.out.println("Lectures.");        }
        int month = 4;        String season = switch (month) {            case 12, 1, 2 -> "winter";            case 3, 4, 5 -> "spring";            case 6, 7, 8 -> "summer";            default -> "autumn";        };        System.out.println("Month " + month + " is in " + season + ".");    }}
Eingabe
Friday

Typische Fehler

  • = statt ==

    = weist einen Wert zu, == vergleicht. if (age = 18) meldet der Compiler mit incompatible types: int cannot be converted to boolean.

  • Texte mit == vergleichen

    == prüft bei Texten, ob es dasselbe Objekt ist, nicht ob die Buchstaben gleich sind. Mit eingelesenen Texten ist das oft false, obwohl sie gleich aussehen. Immer equals benutzen:

    if (answer.equals("yes")) { ... }
  • Semikolon hinter if

    if (x > 10); ist eine Bedingung mit leerer Anweisung. Der Block danach läuft dann immer. Hinter die runde Klammer gehört direkt die geschweifte.

  • Falsche Reihenfolge

    Bei else if gewinnt der erste passende Zweig. Steht if (points >= 50) vor else if (points >= 90), wird der zweite Zweig nie erreicht. Prüfe die engere Bedingung zuerst.

  • default fehlt im Switch-Ausdruck

    Liefert ein switch einen Wert, muss jeder mögliche Wert abgedeckt sein. Ohne default meldet der Compiler the switch expression does not cover all possible input values.

Aufgaben zu diesem Thema

Übe das Gelernte direkt im Browser. Tests prüfen deine Lösung sofort.

Verwandte Artikel