Lädt...

if und else in Java

Bisher hast du true oder false gespeichert, oder du hast aus zwei Antworten mit Zeichen wie && eine Antwort gebaut. Jene Seiten endeten noch mit einem Wert unter einem Namen. Diese Seite nutzt diesen Wert anders: Java sieht true oder false und führt nur eine Gruppe von Zeilen aus. Das Werkzeug für diese Wahl ist if. Die andere Gruppe, wenn du sie brauchst, ist else.

Ein boolean entscheidet, welcher Block läuft

Lege eine kleine Programmdatei namens Gate.java an. Die public class in der ersten Zeile muss zum Dateinamen passen: public class Gate. Lass keine ältere Mint-Klasse in dieser Datei; der Compiler erwartet, dass Klassenname und Dateiname übereinstimmen.
Speichere in main ein boolean, bevor du einen Pfad wählst:
boolean ready = true;
Diese Zeile druckt nichts. Sie gibt dem Namen ready nur das Wort true. ready beginnt mit kleinem r. Um true stehen keine Anführungszeichen. Das Semikolon beendet die Speicherzeile. Danach kommt die Wahl selbst:
if (ready) {
System.out.println("pass");
} else {
System.out.println("wait");
}
Das Wort if steht kleingeschrieben: i, dann f. Es ist kein Name, den du erfindest. Ein Leerzeichen nach if ist in Ordnung; if(ready) ohne Leerzeichen kompiliert ebenfalls. In den runden Klammern sitzt der Name ready — ohne Anführungszeichen, ohne ==, ohne &&. Wenn ready true hält, betritt Java das erste Paar geschweifter Klammern und führt System.out.println("pass"); aus. Die Anführungszeichen um pass markieren Buchstaben für den Bildschirm. Diese Buchstaben — p, a, s, s — solltest du sehen, eine Zeile. Der else-Block wird in diesem Lauf ganz übersprungen. Speichere die Datei, bevor du kompilierst.

Programm, das pass schreibt

Das ist die Version, die du zuerst kompilierst.

ready ist true

java
public class Gate {
    public static void main(String[] args) {
        boolean ready = true;
        if (ready) {
            System.out.println("pass");
        } else {
            System.out.println("wait");
        }
    }
}

Im Ordner, der Gate.java hält, tippe javac Gate.java. Wenn geschweifte und runde Klammern passen, schreibt javac keine eigene Zeile. Dann tippe java Gate — nicht java Gate.java. Lass die Endung .java beim zweiten Befehl weg. Dieselben zwei Befehle funktionieren unter Windows und unter macOS; diese Seite braucht keine andere Shell-Schreibweise für eines der Systeme. Das Programm sollte pass schreiben und enden. Es sollte dich nicht tippen lassen. Wenn das Terminal auf Tastatureingabe wartet, steckt noch ein nextLine-Aufruf aus einer älteren Übung in der Datei. Lösche diesen Aufruf und behalte das boolean plus das if / else oben. Für eine falsche Bildschirmzeile brauchst du keine neue JDK-Installation.

Warum pass und nicht wait? Weil der Test in den Klammern true war. Java druckt in diesem Lauf nicht das Wort true. Es druckt, was println innerhalb der gewählten geschweiften Klammern ausführt. Denk an drei Aufgaben: runde Klammern halten den Test, geschweifte Klammern fassen die zusammengehörigen Zeilen, und nur println schreibt auf den Bildschirm. Wenn der Bildschirm true zeigt, druckst du wahrscheinlich noch das boolean selbst, oder eine ältere Demo mit Kombinationszeichen steht noch in main. Ersetze diese Schreibzeile durch println("pass") innerhalb der if-Klammern, wenn ready true ist.

Wenn ready false ist

Ändere nur den gespeicherten Wert:
boolean ready = false;
Lass die if- / else-Struktur wie sie ist. Jetzt scheitert der Test, also überspringt Java die ersten Klammern und führt stattdessen die else-Klammern aus. Der Bildschirm sollte wait zeigen, eine Zeile.

ready ist false

java
public class Gate {
    public static void main(String[] args) {
        boolean ready = false;
        if (ready) {
            System.out.println("pass");
        } else {
            System.out.println("wait");
        }
    }
}

Kompiliere und starte erneut: javac Gate.java, dann java Gate. Du solltest wait sehen. Merke: Du hast die if-Zeile und die else-Zeile nicht neu geschrieben — nur der Wert unter ready hat sich geändert. Nachdem du wait gesehen hast, kannst du boolean ready = true; zurücksetzen, um zur ersten Demo zu kommen. Beide Versionen sind gültiges Java. Sie lehren dieselbe if- / else-Form mit entgegengesetzten Tests.

Lies den false-Lauf noch einmal der Reihe nach. ready hält false. if (ready) wird gefragt. Die Antwort ist false, also wird jede Zeile zwischen der ersten { und ihrer passenden } übersprungen — einschließlich println("pass"). Die Kontrolle geht bei else weiter. Die Zeilen zwischen den else-Klammern laufen, also führt println("wait") aus. Eine Zeile auf dem Bildschirm. Keine zweite Zeile. Das Wort false selbst erscheint nie, außer du druckst es absichtlich.

Regeln, die die Wahl klar halten

Runde Klammern um den Test sind Pflicht. if ready { … } ohne Klammern lässt javac scheitern. Der Test auf dieser Seite ist ein boolean: ein Name wie ready, oder die nackten Wörter true oder false ohne Anführungszeichen. if ("true") setzt Buchstaben dorthin, wo ein boolean-Test hingehört; javac meldet einen Fehler. Entferne die Anführungszeichen, oder bleib bei einem boolean-Namen. Eine ganze Zahl allein wie if (1) ist nicht die Bereitschaft dieser Lektion; bleib bei true, false oder einem boolean-Namen.

Geschweifte Klammern zählen fürs Lesen der Lektion. Diese Seite wickelt jeden Pfad immer in { }. Java erlaubt ein einzeiliges if ohne geschweifte Klammern, aber sobald du eine zweite Zeile unter dieses if setzt, bleibt nur die erste Zeile an den Test gebunden, sofern keine Klammern da sind. Anfänger verlieren dieses Detail leicht. Behalte in beiden Demos Klammern, damit jeder Pfad klar ist: eine öffnende Klammer nach dem Test, eine schließende vor else, dann ein weiteres Paar für else.

else gehört zu einem if. Ein alleiniges else lässt javac scheitern. Auf dieser Seite hat ein if ein else. Du darfst if ohne else schreiben, wenn dich nur der true-Pfad interessiert; die erste Lehr-Demo zeigt trotzdem beide Seiten, damit du die Gabelung siehst. Unter vielen festen Werten zu wählen ist switch auf einer späteren Seite — erfinde hier keinen dritten Zweig mit einem weiteren else.

Du kannst den Test auch ohne eigenen Namen schreiben: if (true) { … } else { … }. Das kompiliert und läuft. Die Demos nutzen ready, damit du siehst, wie ein gespeichertes boolean die Wahl steuert — so sehen Programme aus, nachdem du true und false speichern kannst. Vergleiche wie if (score > 10) kommen, wenn du mit dieser true- / false-Gabelung vertraut bist; diese Seite hält den Test als boolean-Wert, den du schon verstehst.

📊 ready und der Bildschirm

ready Bildschirm
true pass
false wait

Nutze die Tabelle als Kontrolle nach einem Lauf, nicht statt eines Laufs. true mit der ersten Demo schreibt pass. false mit der zweiten Demo schreibt wait. Wenn beide println-Zeilen irgendwie laufen, stimmen die Klammern oder die if- / else-Paarung nicht — repariere die Struktur, statt Java neu zu installieren.

Eine häufige Verwechslung ist, die Syntax selbst zu drucken: System.out.println("if (ready)");. Das schreibt die Zeichen if (ready). Es wählt keinen Pfad. Eine andere Verwechslung ist, &&- oder ==-Demos in derselben main zu lassen und sich zu wundern, warum der Bildschirm true statt pass zeigt. Die main dieser Sitzung soll nur das boolean und das if / else halten.

Was du jetzt kannst

Du kannst ein boolean speichern, es in if (…) setzen und jedem Ergebnis seinen eigenen geklammerten Block geben. Wenn der Test true ist, läuft ein println; wenn er false ist, läuft das else-println. Die nächste Seite ist switch, wo mehrere feste Werte je einen eigenen case bekommen statt einer einzelnen true- / false-Gabelung.

🧠 Testen Sie Ihr Wissen

Bereit zum Start

Testen Sie Ihr Wissen

Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen

❓
5
Fragen
🎯
70%
Zum Bestehen
♾️
∞
Zeit
🔄
∞
Versuche

📝 Anweisungen

  • Lesen Sie jede Frage sorgfältig
  • Wählen Sie die beste Antwort für jede Frage
  • Sie können das Quiz so oft wiederholen, wie Sie möchten
  • Ihr Fortschritt wird oben angezeigt