Appearance
Kapitel 6: Bedingte Anweisungen (if, else, switch)
🎯 Lernziele
In diesem Kapitel lernst du:
- Was Ablaufsteuerung ist
if-Anweisung (einfache Bedingung)if...else-Anweisung (zwei Möglichkeiten)if...else if...else-Anweisung (mehrere Möglichkeiten)switch-Anweisung (für viele gleichwertige Optionen)- Übungsaufgaben zu Bedingungen
6.1 Was ist Ablaufsteuerung?
🚦 Warum brauchen wir Bedingungen?
Bisher wurde Code zeilenweise von oben nach unten ausgeführt. Aber oft wollen wir:
- ✅ Code nur ausführen, wenn eine Bedingung wahr ist
- ✅ Zwischen verschiedenen Optionen wählen
- ✅ Wiederholungen machen (nächstes Kapitel)
📊 Beispiele aus dem Alltag
Wenn es regnet → Regenschirm mitnehmen
Sonst → Sonnenbrille aufsetzen
Wenn Note >= 90 → "Sehr gut"
Wenn Note >= 80 → "Gut"
Wenn Note >= 60 → "Befriedigend"
Sonst → "Nicht bestanden"In Java nutzen wir dafür: if, else, switch
6.2 if-Anweisung (einfache Bedingung)
📝 Syntax
java
if (bedingung) {
// Code-Block: Wird nur ausgeführt, wenn Bedingung wahr (true) ist
}📋 Beispiel 1: Ist die Zahl positiv?
java
public class IfBeispiel1 {
public static void main(String[] args) {
int zahl = 10;
if (zahl > 0) {
System.out.println("Die Zahl ist positiv!");
}
System.out.println("Programm beendet.");
}
}Ausgabe:
Die Zahl ist positiv!
Programm beendet.📋 Beispiel 2: Überprüfe ob volljährig
java
public class IfBeispiel2 {
public static void main(String[] args) {
int alter = 20;
if (alter >= 18) {
System.out.println("Du bist volljährig!");
System.out.println("Du darfst wählen gehen.");
}
}
}Ausgabe:
Du bist volljährig!
Du darfstest wählen gehen.⚠️ Achtung: Geschweifte Klammern sind optional (aber empfohlen!)
java
// Ohne geschweifte Klammern (nur eine Anweisung)
if (alter >= 18)
System.out.println("Volljährig!");
// Mit geschweiften Klammern (besser lesbar!)
if (alter >= 18) {
System.out.println("Volljährig!");
}→ Empfehlung: Immer geschweifte Klammern {} verwenden!
6.3 if...else-Anweisung (zwei Möglichkeiten)
📝 Syntax
java
if (bedingung) {
// Wird ausgeführt, wenn Bedingung wahr (true) ist
} else {
// Wird ausgeführt, wenn Bedingung falsch (false) ist
}📋 Beispiel 1: Gerade oder ungerade Zahl?
java
public class IfElseBeispiel1 {
public static void main(String[] args) {
int zahl = 7;
if (zahl % 2 == 0) {
System.out.println("Die Zahl ist gerade.");
} else {
System.out.println("Die Zahl ist ungerade.");
}
}
}Ausgabe:
Die Zahl ist ungerade.📋 Beispiel 2: Passwort überprüfen
java
import java.util.Scanner;
public class IfElseBeispiel2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Bitte Passwort eingeben: ");
String passwort = scanner.nextLine();
if (passwort.equals("geheim123")) {
System.out.println("Login erfolgreich!");
} else {
System.out.println("Falsches Passwort!");
}
scanner.close();
}
}6.4 if...else if...else-Anweisung (mehrere Möglichkeiten)
📝 Syntax
java
if (bedingung1) {
// Wird ausgeführt, wenn Bedingung1 wahr ist
} else if (bedingung2) {
// Wird ausgeführt, wenn Bedingung1 falsch und Bedingung2 wahr ist
} else if (bedingung3) {
// Wird ausgeführt, wenn Bedingung1 & 2 falsch und Bedingung3 wahr ist
} else {
// Wird ausgeführt, wenn alle Bedingungen falsch sind
}📋 Beispiel 1: Notenbewertung
java
public class NotenBeispiel {
public static void main(String[] args) {
int punkte = 85;
if (punkte >= 90) {
System.out.println("Note: Sehr gut (1)");
} else if (punkte >= 80) {
System.out.println("Note: Gut (2)");
} else if (punkte >= 70) {
System.out.println("Note: Befriedigend (3)");
} else if (punkte >= 60) {
System.out.println("Note: Ausreichend (4)");
} else {
System.out.println("Note: Nicht bestanden (5)");
}
}
}Ausgabe:
Note: Gut (2)📋 Beispiel 2: Tageszeit bestimmen
java
public class TageszeitBeispiel {
public static void main(String[] args) {
int stunde = 14;
if (stunde >= 6 && stunde < 12) {
System.out.println("Guten Morgen!");
} else if (stunde >= 12 && stunde < 18) {
System.out.println("Guten Tag!");
} else if (stunde >= 18 && stunde < 22) {
System.out.println("Guten Abend!");
} else {
System.out.println("Gute Nacht!");
}
}
}Ausgabe:
Guten Tag!6.5 switch-Anweisung (für viele gleichwertige Optionen)
📝 Syntax
java
switch (ausdruck) {
case wert1:
// Code für wert1
break;
case wert2:
// Code für wert2
break;
// ... weitere cases
default:
// Code, wenn kein case passt
}🔍 Wichtig: break und default
break: Beendet dasswitch-Statement (sonst wird weiter ausgeführt!)default: Wird ausgeführt, wenn keincasepasst (wieelse)
📋 Beispiel 1: Wochentag bestimmen
java
public class SwitchBeispiel1 {
public static void main(String[] args) {
int tag = 3; // 1 = Montag, 2 = Dienstag, ...
switch (tag) {
case 1:
System.out.println("Montag");
break;
case 2:
System.out.println("Dienstag");
break;
case 3:
System.out.println("Mittwoch");
break;
case 4:
System.out.println("Donnerstag");
break;
case 5:
System.out.println("Freitag");
break;
case 6:
System.out.println("Samstag");
break;
case 7:
System.out.println("Sonntag");
break;
default:
System.out.println("Ungültiger Tag!");
}
}
}Ausgabe:
Mittwoch📋 Beispiel 2: Einfacher Taschenrechner (mit char)
java
import java.util.Scanner;
public class SwitchBeispiel2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Erste Zahl: ");
double a = scanner.nextDouble();
System.out.print("Operator (+, -, *, /): ");
char operator = scanner.next().charAt(0);
System.out.print("Zweite Zahl: ");
double b = scanner.nextDouble();
double ergebnis;
switch (operator) {
case '+':
ergebnis = a + b;
break;
case '-':
ergebnis = a - b;
break;
case '*':
ergebnis = a * b;
break;
case '/':
ergebnis = a / b;
break;
default:
System.out.println("Ungültiger Operator!");
return;
}
System.out.println("Ergebnis: " + ergebnis);
scanner.close();
}
}⚠️ Achtung: Fall-through (Fehlt break?)
java
int zahl = 2;
switch (zahl) {
case 1:
System.out.println("Eins");
case 2:
System.out.println("Zwei"); // ← Wird ausgeführt
case 3:
System.out.println("Drei"); // ← Wird AUCH ausgeführt (Fall-through!)
break;
default:
System.out.println("Andere");
}Ausgabe (ohne break bei case 2):
Zwei
Drei→ Immer break verwenden, um Fall-through zu verhindern!
✨ Neu in Java 14+: Enhanced Switch (Pfeilsyntax)
java
// Neue Syntax (Java 14+)
int tag = 3;
String tagesname = switch (tag) {
case 1 -> "Montag";
case 2 -> "Dienstag";
case 3 -> "Mittwoch";
case 4 -> "Donnerstag";
case 5 -> "Freitag";
case 6 -> "Samstag";
case 7 -> "Sonntag";
default -> "Ungültiger Tag";
};
System.out.println(tagesname); // "Mittwoch"Vorteile:
- ✅ Kein
breaknötig - ✅ Kann einen Wert zurückgeben
- ✅ Kürzere Schreibweise
6.6 Bedingungs-Anweisung: Übungsaufgaben
🏋️ Übung 1: Größte von drei Zahlen finden
Aufgabe: Schreibe ein Programm, das die größte von drei Zahlen findet.
Lösung:
java
public class Uebung1 {
public static void main(String[] args) {
int a = 10, b = 20, c = 15;
int maximum;
if (a >= b && a >= c) {
maximum = a;
} else if (b >= a && b >= c) {
maximum = b;
} else {
maximum = c;
}
System.out.println("Die größte Zahl ist: " + maximum); // 20
}
}🏋️ Übung 2: Schaltjahr überprüfen
Aufgabe: Ein Jahr ist ein Schaltjahr, wenn:
- Es durch 4 teilbar ist, UND
- Es NICHT durch 100 teilbar ist, ODER
- Es durch 400 teilbar ist.
Lösung:
java
public class Uebung2 {
public static void main(String[] args) {
int jahr = 2024;
boolean istSchaltjahr;
if ((jahr % 4 == 0 && jahr % 100 != 0) || (jahr % 400 == 0)) {
istSchaltjahr = true;
} else {
istSchaltjahr = false;
}
if (istSchaltjahr) {
System.out.println(jahr + " ist ein Schaltjahr.");
} else {
System.out.println(jahr + " ist kein Schaltjahr.");
}
}
}Ausgabe:
2024 ist ein Schaltjahr.🏋️ Übung 3: Dreiecksart bestimmen
Aufgabe: Drei Seitenlängen a, b, c bilden:
- Ein gleichseitiges Dreieck, wenn a == b == c
- Ein gleichschenkliges Dreieck, wenn zwei Seiten gleich sind
- Ein ungleichseitiges Dreieck, wenn alle Seiten verschieden sind
Lösung:
java
public class Uebung3 {
public static void main(String[] args) {
int a = 5, b = 5, c = 8;
if (a == b && b == c) {
System.out.println("Gleichseitiges Dreieck");
} else if (a == b || a == c || b == c) {
System.out.println("Gleichschenkliges Dreieck");
} else {
System.out.println("Ungleichseitiges Dreieck");
}
}
}Ausgabe:
Gleichschenkliges Dreieck📝 Zusammenfassung
In diesem Kapitel hast du gelernt:
- ✅
if-Anweisung (einfache Bedingung) - ✅
if...else-Anweisung (zwei Möglichkeiten) - ✅
if...else if...else-Anweisung (mehrere Möglichkeiten) - ✅
switch-Anweisung (für viele gleichwertige Optionen) - ✅ Übungsaufgaben zu Bedingungen
💡 Merksatz für Anfänger
"Nutze
if...elsefür Bereichsüberprüfungen (z.B. Noten), undswitchfür feste Werte (z.B. Menüauswahl)!"
🎯 Nächste Schritte
Im nächsten Kapitel lernst du:
- Schleifen (for, while, do-while) (Kapitel 7)
- Wie man Code mehrfach ausführt
breakundcontinuein Schleifen- Verschachtelte Schleifen
Bereit für Wiederholungen? Los geht's! 🚀
📚 Weiterführende Links:
💬 Fragen?
Hinterlasse einen Kommentar!
