Übung 1 von 4
Dein erstes If
Mit if führst du Code nur aus, wenn eine Bedingung stimmt:
if (alter >= 18) {
IO.println("Erwachsen");
}
Der Code prüft ob zahl größer als 10 ist. Ändere zahl, damit der Text ausgegeben wird.
Startcode
void main() {
int zahl = 5;
if (zahl > 10) {
IO.println("Groesser als 10!");
}
}
Hintergrund
Wie der Compiler Bedingungen verarbeitet
Ein if wird im Bytecode zu einem bedingten Sprung (conditional jump). Die CPU prüft einen Vergleich und springt entweder zum "dann"-Block oder überspringt ihn.
Moderne CPUs haben Branch Prediction — sie raten, welcher Zweig wahrscheinlicher ist, und bereiten den Code schon vor. Liegt die CPU falsch, wird das rückgängig gemacht (Pipeline Flush).
Übung 2 von 4
If-Else
Mit else sagst du was passieren soll, wenn die Bedingung nicht stimmt:
if (bedingung) {
// wenn true
} else {
// wenn false
}
Die println-Zeilen sind schon da. Ergänze nur die Bedingung im if: Prüfe ob temperatur größer oder gleich 20 ist.
Startcode
void main() {
int temperatur = 22;
if (???) {
IO.println("Warm");
} else {
IO.println("Kalt");
}
}
Hintergrund
Ternärer Operator — die if-else-Kurzform
Java hat eine Einzeiler-Variante von if-else: ergebnis = bedingung ? wennTrue : wennFalse;
Beispiel: String s = temperatur >= 20 ? "Warm" : "Kalt"; — macht genau das Gleiche wie der if-else-Block hier, nur kompakter.
Übung 3 von 4
Vergleichen
Java hat diese Vergleichs-Operatoren:
== gleich
!= ungleich
< kleiner
> größer
<= kleiner oder gleich
>= größer oder gleich
Achtung: Gleich-Prüfung ist == (doppelt!), nicht = (das ist Zuweisung).
Ergänze die Bedingung: Prüfe ob passwort den Wert 1234 hat.
Startcode
void main() {
int passwort = 1234;
if (???) {
IO.println("Zugang erlaubt");
} else {
IO.println("Falsches Passwort");
}
}
Hintergrund
== vs. .equals() — die wichtigste Java-Falle
Bei primitiven Typen (int, double, boolean) vergleicht == die Werte — das ist korrekt.
Bei Objekten (String, Arrays, eigene Klassen) vergleicht == die Referenz (ist es dasselbe Objekt im Speicher?), nicht den Inhalt! Für Strings und die meisten Objekte brauchst du .equals(). Arrays sind ein Sonderfall: Ihr .equals() vergleicht ebenfalls nur die Referenz — nimm stattdessen Arrays.equals(). Das ist einer der häufigsten Anfängerfehler in Java.
Übung 4 von 4
Else-If
Für mehrere Bedingungen nutzt du else if:
if (note == 1) {
// ...
} else if (note == 2) {
// ...
} else {
// alles andere
}
Ergänze den fehlenden else if-Block: Wenn note gleich 2 ist, gib Gut aus.
Startcode
void main() {
int note = 2;
if (note == 1) {
IO.println("Sehr gut");
// Ergaenze hier: else if note == 2 -> "Gut"
} else {
IO.println("Nicht schlecht");
}
}
Hintergrund
Else-If-Ketten vs. Switch
Lange else if-Ketten werden schnell unübersichtlich. Ab ~4 Fällen ist switch oft besser lesbar. Ab Java 14 gibt es sogar Switch Expressions mit Pfeil-Syntax: case 1 -> "Sehr gut";
Der Compiler (javac) übersetzt einen Switch in eine Sprungtabelle (die Bytecode-Befehle tableswitch / lookupswitch) — bei vielen Fällen ist ein Switch daher meist auch schneller als eine lange if-else-Kette.