Skip to content

Kapitel 7: Bedingte Anweisungen (Entscheidungen treffen)

Bedingte Anweisungen erlauben Ihrem Code, Entscheidungen zu treffen. In diesem Kapitel lernen Sie if, else, switch und mehr.

7.1 if Anweisung: Einzelne Bedingung

Die if-Anweisung führt Code nur dann aus, wenn eine Bedingung true ist.

Grundlegende Syntax

javascript
let alter = 20;

if (alter >= 18) {
    console.log("Sie sind volljährig!");
}

Ablauf:

  1. Bedingung in Klammern wird geprüft
  2. Wenn true → Code in { } wird ausgeführt
  3. Wenn false → Code wird übersprungen

Einfache Beispiele

javascript
// Beispiel 1: Passwort-Länge prüfen
let passwort = "geheim123";
if (passwort.length >= 8) {
    console.log("Passwort ist lang genug.");
}

// Beispiel 2: Zahl positiv prüfen
let zahl = 10;
if (zahl > 0) {
    console.log("Die Zahl ist positiv.");
}

// Beispiel 3: Benutzer angemeldet?
let istAngemeldet = true;
if (istAngemeldet) {
    console.log("Willkommen zurück!");
}

7.2 if...else Anweisung: Zwei Möglichkeiten

Wenn die Bedingung false ist, wird der else-Block ausgeführt.

Grundlegende Syntax

javascript
let alter = 15;

if (alter >= 18) {
    console.log("Sie dürfen Auto fahren.");
} else {
    console.log("Sie sind zu jung zum Autofahren.");
}

Praxis-Beispiel: Gerade oder ungerade Zahl

javascript
let zahl = 7;

if (zahl % 2 === 0) {
    console.log("Die Zahl ist gerade.");
} else {
    console.log("Die Zahl ist ungerade.");
}

Kurzschreibweise: Einzeiler (nicht empfohlen für Anfänger)

javascript
// Ausführlich (gut):
if (alter >= 18) {
    console.log("Volljährig");
} else {
    console.log("Minderjährig");
}

// Kurz (schlecht lesbar):
if (alter >= 18) console.log("Volljährig"); else console.log("Minderjährig");

7.3 if...else if Anweisung: Mehrere Bedingungen

Wenn Sie mehrere Bedingungen prüfen müssen, verwenden Sie else if.

Grundlegende Syntax

javascript
let note = 85;

if (note >= 90) {
    console.log("Sehr gut");
} else if (note >= 75) {
    console.log("Gut");
} else if (note >= 50) {
    console.log("Befriedigend");
} else {
    console.log("Nicht bestanden");
}

Ablauf:

  1. Prüft die erste Bedingung (note >= 90)
  2. Wenn false, prüft die nächste (note >= 75)
  3. Wenn alle false, führt else aus
  4. Nur ein Block wird ausgeführt!

Praxis-Beispiel: Notenbewertung

javascript
let punkte = 82;

if (punkte >= 90) {
    console.log("Note: 1 (Sehr gut)");
} else if (punkte >= 80) {
    console.log("Note: 2 (Gut)");
} else if (punkte >= 70) {
    console.log("Note: 3 (Befriedigend)");
} else if (punkte >= 60) {
    console.log("Note: 4 (Ausreichend)");
} else {
    console.log("Note: 5 (Nicht bestanden)");
}

7.4 switch Anweisung: Festwert-Vergleich

Wenn Sie feste Werte prüfen, ist switch oft lesbarer als if...else if.

Grundlegende Syntax

javascript
let wochentag = 3;
let tagName;

switch (wochentag) {
    case 1:
        tagName = "Montag";
        break;
    case 2:
        tagName = "Dienstag";
        break;
    case 3:
        tagName = "Mittwoch";
        break;
    case 4:
        tagName = "Donnerstag";
        break;
    case 5:
        tagName = "Freitag";
        break;
    default:
        tagName = "Wochenende";
}

console.log(tagName);  // "Mittwoch"

Wichtiges zur switch-Anweisung

ElementZweck
switch (wert)Wert, der geprüft wird
case wert:Vergleichswert
break;Verlässt den switch-Block (WICHTIG!)
default:Wird ausgeführt, wenn kein case passt

⚠️ Vergessen Sie break nicht!

javascript
// FALSCH (ohne break):
let x = 2;
switch (x) {
    case 1:
        console.log("Eins");
    case 2:
        console.log("Zwei");
    case 3:
        console.log("Drei");
}
// Ausgabe: "Zwei", "Drei" (Fall-through Bug!)

// RICHTIG (mit break):
switch (x) {
    case 1:
        console.log("Eins");
        break;
    case 2:
        console.log("Zwei");
        break;
    case 3:
        console.log("Drei");
        break;
}
// Ausgabe: "Zwei" ✅

Praxis-Beispiel: Menü-Auswahl

javascript
let auswahl = "2";

switch (auswahl) {
    case "1":
        console.log("Sie haben Pizza gewählt.");
        break;
    case "2":
        console.log("Sie haben Pasta gewählt.");
        break;
    case "3":
        console.log("Sie haben Salat gewählt.");
        break;
    default:
        console.log("Ungültige Auswahl.");
}

7.5 Ternärer Operator: Kurzform der Bedingung

Der ternäre Operator (? :) ist eine kurze Schreibweise für einfache if...else-Anweisungen.

Grundlegende Syntax

javascript
// Normale if...else:
let alter = 20;
let status;

if (alter >= 18) {
    status = "volljährig";
} else {
    status = "minderjährig";
}

// Ternärer Operator (kurz):
let status2 = alter >= 18 ? "volljährig" : "minderjährig";

console.log(status);   // "volljährig"
console.log(status2);  // "volljährig"

Syntax-Erklärung

bedingung ? wertWennTrue : wertWennFalse

Praxis-Beispiele

javascript
// Beispiel 1: Gerade/ungerade
let zahl = 7;
let ergebnis = zahl % 2 === 0 ? "gerade" : "ungerade";
console.log(ergebnis);  // "ungerade"

// Beispiel 2: Grüß nach Uhrzeit
let stunde = 14;
let gruss = stunde < 12 ? "Guten Morgen" : "Guten Tag";
console.log(gruss);  // "Guten Tag"

// Beispiel 3: In Funktionen (kurz)
function istErwachsen(alter) {
    return alter >= 18 ? "Ja" : "Nein";
}

console.log(istErwachsen(20));  // "Ja"
console.log(istErwachsen(15));  // "Nein"

Wann verwendet man den ternären Operator?

SituationEmpfehlung
Einfache Zuweisung✅ Ternärer Operator
Komplexe Logik❌ Lieber if...else
Mehrere Bedingungen❌ Lieber if...else if
Lesbarkeit wichtig❌ Lieber ausführlich schreiben

7.6 Praxis: Noten bewerten / Alter prüfen

Projekt 1: Noten-Bewertung

javascript
function bewerteNote(punkte) {
    if (punkte >= 90) {
        return "Sehr gut (1)";
    } else if (punkte >= 80) {
        return "Gut (2)";
    } else if (punkte >= 70) {
        return "Befriedigend (3)";
    } else if (punkte >= 60) {
        return "Ausreichend (4)";
    } else {
        return "Nicht bestanden (5)";
    }
}

console.log(bewerteNote(85));  // "Gut (2)"
console.log(bewerteNote(45));  // "Nicht bestanden (5)"

Projekt 2: Altersprüfung mit ternärem Operator

javascript
function pruefeAlter(alter) {
    let kategorie = alter < 13 ? "Kind" :
                    alter < 18 ? "Jugendlicher" :
                    alter < 65 ? "Erwachsener" :
                    "Rentner";
    return kategorie;
}

console.log(pruefeAlter(10));  // "Kind"
console.log(pruefeAlter(16));  // "Jugendlicher"
console.log(pruefeAlter(30));  // "Erwachsener"
console.log(pruefeAlter(70));  // "Rentner"

Projekt 3: Einkaufswagen-Rabatt

javascript
function berechnePreis(gesamtbetrag, istMitglied) {
    let rabatt = 0;
    
    if (gesamtbetrag >= 100) {
        rabatt = 0.20;  // 20% Rabatt
    } else if (gesamtbetrag >= 50) {
        rabatt = 0.10;  // 10% Rabatt
    } else if (istMitglied) {
        rabatt = 0.05;  // 5% Rabatt für Mitglieder
    }
    
    let endpreis = gesamtbetrag * (1 - rabatt);
    return endpreis.toFixed(2);
}

console.log(berechnePreis(120, false));  // "96.00" (20% Rabatt)
console.log(berechnePreis(60, true));    // "54.00" (10% Rabatt)
console.log(berechnePreis(30, true));    // "28.50" (5% Rabatt)

📝 Zusammenfassung

In diesem Kapitel haben Sie gelernt:

  • if: Führt Code aus, wenn Bedingung true ist
  • if...else: Zwei Möglichkeiten
  • if...else if: Mehrere Bedingungen prüfen
  • switch: Festwert-Vergleich (mit break nicht vergessen!)
  • ✅ Ternärer Operator (? :): Kurzform für einfache Bedingungen
  • ✅ Praxis-Projekte: Notenbewertung, Altersprüfung, Rabattberechnung

➡️ Nächster Schritt

Im nächsten Kapitel lernen wir Schleifen (for, while, do...while) - Werkzeuge, um Code wiederholt auszuführen!


Übung:

  1. Schreiben Sie eine Funktion, die prüft, ob eine Zahl positiv, negativ oder null ist
  2. Erstellen Sie eine Noten-Bewertung mit switch
  3. Verwenden Sie den ternären Operator, um die größere von zwei Zahlen zu finden
  4. Testen Sie alle Funktionen in der Konsole

Frei für alle Anfänger