🔷 C#

Vergleichsoperatoren und logische Operatoren in C#

Was ist das und wozu?

Stell dir vor, du spielst ein Computerspiel. Um ein Level zu schaffen, musst du verschiedene Bedingungen prüfen: "Wenn der Held weniger als 10 Leben hat, aktiviere den Schutz" oder "Wenn der Spieler die Taste UND gedrückt und alle Münzen gesammelt hat, öffne die Tür".

In der Programmierung werden solche Prüfungen mit Vergleichsoperatoren und logischen Operatoren durchgeführt. Sie helfen dem Programm zu "denken" und Entscheidungen zu treffen. Ohne sie wäre der Code nur eine Liste von Befehlen, die immer gleich ausgeführt werden, aber so kann das Programm auf verschiedene Situationen reagieren.

Zum Beispiel schreibst du einen Notenrechner. Wenn ein Schüler mehr als 90 Punkte hat – "Ausgezeichnet", wenn weniger als 50 – "Schlecht". Oder du prüfst, ob ein Benutzer sich im System anmelden kann: wenn das Passwort richtig UND das Konto nicht gesperrt ist – lass ihn rein.

Vergleichsoperatoren vergleichen Zahlen oder Text. Logische Operatoren verbinden mehrere Bedingungen zu einer. Zusammen sind sie die Grundlage jedes "intelligenten" Codes.

Syntax und Codebeispiele

In C# sehen die Vergleichsoperatoren so aus:

  • == – gleich (Achtung: zwei Gleichheitszeichen, nicht eines!)
  • != – ungleich
  • > – größer
  • < – kleiner
  • >= – größer oder gleich
  • <= – kleiner oder gleich

Logische Operatoren:

  • && – UND (beide Bedingungen müssen wahr sein)
  • || – ODER (mindestens eine Bedingung ist wahr)
  • ! – NICHT (macht wahr zu falsch und umgekehrt)

Das Ergebnis eines Vergleichs ist immer true (wahr) oder false (falsch).

Beispiel 1: Altersprüfung

int age = 14;
bool canDrive = age >= 18; // false, weil 14 kleiner als 18 ist

if (canDrive)
{
    Console.WriteLine("Du darfst Auto fahren!");
}
else
{
    Console.WriteLine("Wachse noch etwas."); // Das wird ausgeführt
}

// Erklärung:
// age >= 18 – das ist ein Vergleich. Er ergibt false.
// if prüft true/false. Wenn true – führe den ersten Block aus, wenn false – den zweiten.

Beispiel 2: Login- und Passwortprüfung

string login = "user123";
string password = "qwerty";

// Prüfen, ob der Login gleich "admin" UND das Passwort gleich "12345" ist
if (login == "admin" && password == "12345")
{
    Console.WriteLine("Willkommen, Admin!");
}
else
{
    Console.WriteLine("Falscher Login oder Passwort.");
}

// Erklärung:
// && bedeutet "UND". Beide Bedingungen müssen true sein.
// login == "admin" – false (weil login = "user123")
// Also ist die gesamte Bedingung false – wir gehen zu else.

Beispiel 3: Rabatt für Studenten oder Rentner

int age = 20;
bool isStudent = true;

// Rabatt, wenn das Alter kleiner als 18 ODER die Person Student ist
if (age < 18 || isStudent)
{
    Console.WriteLine("50% Rabatt!");
}
else
{
    Console.WriteLine("Voller Preis.");
}

// Erklärung:
// || bedeutet "ODER". Es reicht ein true.
// age < 18 – false (20 ist nicht kleiner als 18)
// isStudent – true
// Also ist die Bedingung true – Rabatt wird gewährt.

Beispiel 4: Prüfen, ob eine Zahl ungleich Null ist

int number = 7;

if (number != 0)
{
    Console.WriteLine("Die Zahl ist nicht Null, man kann teilen.");
}
else
{
    Console.WriteLine("Man kann nicht durch Null teilen!");
}

// Erklärung:
// != prüft "ungleich".
// 7 != 0 – das ist true, daher wird der erste Block ausgeführt.

Beispiel 5: Komplexe Bedingung mit NICHT

bool isRaining = false;
bool hasUmbrella = true;

// Wenn es NICHT regnet ODER ein Schirm vorhanden ist – kann man spazieren gehen
if (!isRaining || hasUmbrella)
{
    Console.WriteLine("Gehen wir spazieren!");
}
else
{
    Console.WriteLine("Bleiben wir zu Hause.");
}

// Erklärung:
// !isRaining – das ist "NICHT isRaining". isRaining = false, also !false = true.
// true || true = true – wir gehen spazieren.
// Wenn isRaining = true und hasUmbrella = false wäre, dann !true = false, false || false = false – wir bleiben zu Hause.

Vergleich mit Python

In Python sehen dieselben Operatoren fast gleich aus, aber es gibt ein paar Unterschiede:

  • Statt && schreibt man and
  • Statt || schreibt man or
  • Statt ! schreibt man not
  • Die Vergleichsoperatoren sind dieselben: ==, !=, >, <, >=, <=

Beispiel in Python (dasselbe wie in C#):

age = 14
can_drive = age >= 18  # False

if can_drive:
    print("Du darfst Auto fahren!")
else:
    print("Wachse noch etwas.")

# Logische Operatoren:
login = "user123"
password = "qwerty"

if login == "admin" and password == "12345":
    print("Willkommen, Admin!")
else:
    print("Falscher Login oder Passwort.")

Der Hauptunterschied: In C# sind die logischen Operatoren Symbole (&&, ||, !), während sie in Python Wörter sind (and, or, not). Ansonsten ist die Logik dieselbe.

Typische Anfängerfehler

  1. Verwechslung von = und ==
    = – das ist eine Zuweisung (einen Wert in eine Variable legen).
    == – das ist ein Vergleich (prüfen, ob Werte gleich sind).
    Fehler: if (age = 18) – so geht das nicht! Es muss if (age == 18) heißen.
  2. Vergessen der Operatorpriorität
    Zuerst werden Vergleiche ausgeführt, dann logische Operatoren. Aber es ist besser, Klammern zur Klarheit zu verwenden.
    Beispiel: if (age > 18 && name == "Tom" || score > 100) – unklar, was gemeint ist. Richtig: if ((age > 18 && name == "Tom") || score > 100).
  3. Verwechslung von && und ||
    && erfordert, dass alle Bedingungen wahr sind. || erfordert, dass mindestens eine Bedingung wahr ist.