Kapitel 2 Unit 2 von 5 Theorie + Übungen Dauer: ~45 Min.
Ömer
Ömer sagt:

Jetzt lernen wir, wie C Vergleiche anstellt: Ist x größer als y? Sind zwei Werte gleich? Mit diesen Operatoren baust du später alle Entscheidungen und Bedingungen. Das ist das Herzstück der Logik! 🧠

Vergleichsoperatoren kennen == vs. = unterscheiden Logische Operatoren && || ! Wahrheitswerte (0/1) verstehen Komplexe Bedingungen schreiben

⚖️ Vergleichsoperatoren

Vergleichsoperatoren prüfen eine Bedingung und liefern 1 (wahr) oder 0 (falsch) zurück – in C gibt es keinen eigenen „bool"-Typ (erst ab C99 optional):

OperatorBedeutungBeispielErgebnis
==Gleich5 == 51 (wahr)
!=Ungleich5 != 31 (wahr)
<Kleiner als3 < 51 (wahr)
>Größer als5 > 90 (falsch)
<=Kleiner oder gleich5 <= 51 (wahr)
>=Größer oder gleich3 >= 70 (falsch)

⚠️ == vs. = – der häufigste Fehler in C!

= ist die Zuweisung: x = 5; → speichert 5 in x.
== ist der Vergleich: x == 5 → prüft ob x gleich 5 ist.
Schreibst du if (x = 5) statt if (x == 5), ist das ein schwer zu findender Bug!

🔗 Logische Operatoren

Mit logischen Operatoren kannst du mehrere Bedingungen verknüpfen:

&& – UND (AND)

Wahr, wenn beide Bedingungen wahr sind.
alter >= 18 && alter <= 65
→ Wahr wenn Alter zwischen 18 und 65

|| – ODER (OR)

Wahr, wenn mindestens eine Bedingung wahr ist.
note == 1 || note == 2
→ Wahr wenn Note 1 oder 2

! – NICHT (NOT)

Dreht den Wahrheitswert um: !0 = 1 (wahr), !1 = 0 (falsch).
!(alter < 18) ist dasselbe wie alter >= 18

📋 Wahrheitstabellen

A && B (UND)

ABA && B
000
010
100
111

A || B (ODER)

ABA || B
000
011
101
111

💻 Beispiel

vergleiche.cC
#include <stdio.h>
int main() {
    int x = 7, y = 12;
    printf("x == y:  %d
", x == y);   // 0
    printf("x != y:  %d
", x != y);   // 1
    printf("x <  y:  %d
", x <  y);   // 1
    printf("x>5&&y<20: %d
", x>5 && y<20); // 1
    return 0;
}
▶ Ausgabe
x == y: 0
x != y: 1
x < y: 1
x>5&&y<20: 1

✏️ Übungen

Übung 1

Wahrheitswerte bestimmen

Gegeben: int a = 4, b = 8, c = 4; – Welchen Wert (0 oder 1) haben diese Ausdrücke?

  1. a == c → _______
  2. a != b → _______
  3. b > a && b > c → _______
  4. a == 4 || b == 4 → _______
  5. !(a < b) → _______
Übung 2

Bedingungen formulieren

Schreibe die C-Bedingung für folgende Aussagen (Variable: alter):

„Alter liegt zwischen 16 und 18 (einschließlich):"

„Alter ist nicht 17:"

„Alter ist unter 6 oder über 65:"

Kombiniere Vergleichs- und logische Operatoren, z.B. alter >= 16 && alter <= 18
Übung 3 – Programm

Wahrheitstafel ausgeben

Schreibe ein Programm, das zwei int-Variablen a und b einliest und alle Vergleiche ausgibt (==, !=, <, >, <=, >=).

#include <stdio.h> int main() { int a, b; printf("Zahl a: "); scanf("%d", &a); printf("Zahl b: "); scanf("%d", &b); printf("a == b : %d\n", a == b); printf("a != b : %d\n", a != b); printf("a < b : %d\n", a < b); printf("a > b : %d\n", a > b); printf("a <= b : %d\n", a <= b); printf("a >= b : %d\n", a >= b); return 0; }
💡 Teste mit stdin: 5 und 5 → alles 0 außer == und <= und >=. Dann 3 und 7 – was ändert sich?
Übung 4 – Bonus

Logische Operatoren live testen

Fülle die Bedingungen aus und führe den Code aus. Ändere die Werte von x und y und beobachte, wie sich AND (&&), OR (||) und NOT (!) verhalten:

#include <stdio.h> int main() { int x = 5, y = 10; printf("x=%d, y=%d\n", x, y); printf("x>3 && y>3 : %d\n", x>3 && y>3); printf("x>7 || y>7 : %d\n", x>7 || y>7); printf("!(x==5) : %d\n", !(x==5)); printf("x>0 && y<5 : %d\n", x>0 && y<5); return 0; }
In C bedeutet 1 = wahr (true) und 0 = falsch (false). Es gibt keinen echten bool-Typ in C89.