📘 Kapitel 2 · Unit 8 von 30

if, else
und else if

Bedingte Ausführung · Entscheidungsstrukturen · Flusssteuerung

8 / 30 Units
Ömer
Kapitel 2: Operatoren & Entscheidungen ~45 Min. Theorie + Simulator + Quiz + Spickzettel
Ömer
Ömer sagt:

Jetzt denkt dein Programm! if, else und else if sind die Werkzeuge für alle Entscheidungen. Lerne erst die einfache Form, dann baue auf!

if – die einfachste Entscheidung

SYNTAX
if (Bedingung) {
    // wenn wahr
}
BEISPIEL
if (alter >= 18) {
    printf("Volljährig!\n");
}

if – else

if_else_syntaxC
if (Bedingung) {
    // wenn WAHR
} else {
    // wenn FALSCH
}

else if – mehrere Fälle

noten.cC
if (note == 1)      printf("Sehr gut!\n");
else if (note == 2) printf("Gut!\n");
else if (note == 3) printf("Befriedigend.\n");
else if (note == 4) printf("Genügend.\n");
else               printf("Nicht genügend!\n");

Wichtige Regel

Immer von oben nach unten prüfen – die erste wahre Bedingung wird ausgeführt, der Rest wird übersprungen!

Häufige Fehler

= statt == beim Vergleichen

Falsch – Zuweisung statt Vergleich

FEHLER
if (x = 5) {   // weist 5 zu!
    printf("immer wahr\n");
}

Richtig – Vergleichsoperator ==

KORREKT
if (x == 5) {  // vergleicht!
    printf("nur wenn x==5\n");
}

Semikolon nach der if-Bedingung

Gefährlicher Fehler: if (x > 0); — leerer Rumpf!

Das Semikolon beendet die if-Anweisung sofort. Der Block danach wird immer ausgeführt, egal ob die Bedingung wahr oder falsch ist.

FEHLER
if (x > 0);              // ← Semikolon! if endet hier
{
    printf("läuft immer!\n");  // kein if-Rumpf mehr
}

Fehlende geschweifte Klammern bei mehreren Anweisungen

Falle: kein Block

FEHLER
if (x > 0)
    printf("positiv\n");
    printf("immer!\n"); // außerhalb!

Richtig: mit Block

KORREKT
if (x > 0) {
    printf("positiv\n");
    printf("auch bedingt!\n");
}

Praktisches Beispiel – Notenvergabe

Eine klassische Anwendung von else if: Punktzahlen in Noten umwandeln. Die Ketten werden von oben nach unten geprüft – die erste passende Bedingung gewinnt.

notenvergabe.cC
int punkte = 78;
char note;
if (punkte >= 90)      note = 'A';  // 90–100
else if (punkte >= 80) note = 'B';  // 80–89
else if (punkte >= 70) note = 'C';  // 70–79  ← passt!
else if (punkte >= 60) note = 'D';  // 60–69
else                   note = 'F';  // unter 60
printf("Note: %c\n", note);
▶ Ausgabe
Note: C

Warum funktioniert das so elegant?

Da wir von oben nach unten prüfen und die Bedingungen sich nicht überlappen können, reicht >= ohne obere Grenze. Sobald z. B. punkte >= 70 zutrifft, wurden alle höheren Schwellen bereits verworfen.

⚡ Code-Simulator

Schreibe C-Code links und führe ihn aus – der Simulator zeigt printf-Ausgaben sofort:

C Simulator – Unit 8
▶ Ausgabe
– Klicke auf AUSFÜHREN –
Ömer
Ömer sagt:

Ändere die Werte und schau wie sich die Ausgabe verändert. Das beste Lernen ist Ausprobieren!

🎯 Wissens-Quiz

Frage 1
Was wird bei if (0) { printf("A"); } else { printf("B"); } ausgegeben?
AA
BB
CAB
DNichts
Frage 2
Welche if-Variante prüft mehr als 2 Möglichkeiten?
Aif-if
Bif-else
Cif-else if-else
Dswitch
Frage 3
Was passiert wenn keine else-if-Bedingung zutrifft und es kein else gibt?
AFehler
BProgramm stoppt
CNichts wird ausgeführt
DDer erste Fall wird ausgeführt
Frage 4
Welcher Code prüft korrekt ob x zwischen 1 und 10 liegt?
Aif (1 < x < 10)
Bif (x > 1 && x < 10)
Cif (x > 1 || x < 10)
Dif (x = 5)
Frage 5
Was macht die Einrückung im if-Block?
AÄndert die Logik
BIst Pflicht für den Compiler
CVerbessert die Lesbarkeit
DBeschleunigt das Programm
Frage 6
Was ist das Problem mit if (x = 5) statt if (x == 5)?
ACompilerfehler – = ist in if nicht erlaubt
BDas Programm stürzt ab
CZuweisung statt Vergleich – Bedingung ist immer wahr!
DKein Problem, beide sind gleichwertig
Frage 7
Was passiert bei if (x > 0); mit dem Semikolon nach der Bedingung?
ACompilerfehler
BDas Programm ignoriert den if-Block komplett
CKein Problem – das Semikolon wird ignoriert
DDer Rumpf ist leer – der printf-Block danach läuft immer
Frage 8
Wann wird else if verwendet?
AWenn mehrere sich gegenseitig ausschließende Bedingungen geprüft werden
BWenn man zwei unabhängige Bedingungen kombinieren will
CNur als Ersatz für switch-case
DWenn die erste Bedingung immer wahr ist

📋 Spickzettel

if-Struktur
if (B) {}Wenn B wahr
if...elseWenn/Sonst
else if (B2)Weiterer Fall
else {}Alle anderen Fälle
Regeln
Top-downErste wahre Bedingung gewinnt
EinrückenLesbarkeit!
Klammern{ } nicht vergessen
Semikolonkein ; nach )

✅ Checkliste Unit 8