Menu
Coddy logo textTech

Komplexe boolesche Logik

Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy. Lektion 9 von 66.

Boolesche Logik kann komplex werden, wenn mehrere Bedingungen kombiniert werden. Das Verständnis der Operatorpriorität und die Verwendung von Klammern hilft, klare und korrekte Ausdrücke zu schreiben.

Die Reihenfolge der Präzedenz für boolesche Operatoren in C# ist:

  1. NICHT (!)
  2. UND (&&)
  3. ODER (||)

Hier ist ein Beispiel für einen komplexen booleschen Ausdruck:

bool isValid = age >= 18 && (score > 70 || hasPriorExperience) && !isBlacklisted;

Verwenden Sie die De-Morganschen Gesetze, um komplexe Negationen zu vereinfachen:

// Anstatt von:
if (!(age >= 18 && score > 70))
{
    // Dies ist äquivalent zu:
    if (age < 18 || score <= 70)
    {
        Console.WriteLine("Not eligible");
    }
}

Kurzschlussevaluierung: Mit && und || wertet C# nur aus, was notwendig ist:

// Wenn user null ist, wertet C# die zweite Bedingung nicht aus
if (user != null && user.IsActive)
{
    Console.WriteLine("Active user");
}

Verwenden Sie explizite Klammern für Klarheit, auch wenn sie nicht strikt erforderlich sind:

bool result = (isWeekend || isHoliday) && (hour > 10 && hour < 20);
challenge icon

Aufgabe

Mittel

Erstelle eine Methode namens determineAccess, die anhand dieser Regeln bestimmt, ob ein Benutzer Zugriff auf ein System hat:

  1. Nimmt fünf Parameter entgegen:
    • isAdmin (bool): Gibt an, ob der Benutzer Administrator ist
    • isLoggedIn (bool): Gibt an, ob der Benutzer derzeit angemeldet ist
    • timeOfDay (int): Die aktuelle Stunde (0-23)
    • isMaintenanceMode (bool): Gibt an, ob sich das System im Wartungsmodus befindet
    • hasEmergencyAccess (bool): Gibt an, ob der Benutzer Notfallzugriff hat
  2. Gibt true zurück, wenn ANY dieser Bedingungen erfüllt ist:
    • Der Benutzer ist Administrator AND ist angemeldet
    • Die Uhrzeit liegt innerhalb der Geschäftszeiten (9-17 einschließlich) AND der Benutzer ist angemeldet AND das System befindet sich NOT im Wartungsmodus
    • Der Benutzer hat Notfallzugriff

Probier es selbst

public class DetermineAccess
{
    // Implementieren Sie die determineAccess-Methode
    public static bool determineAccess(bool isAdmin, bool isLoggedIn, int timeOfDay, bool isMaintenanceMode, bool hasEmergencyAccess)
    {
        // Schreiben Sie Ihren Code hier
        
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-C#-Compiler