Menu
Coddy logo textTech

Karmaşık Boolean Mantığı

Coddy'nin C# Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 9 / 66.

Boolean mantığı, birden fazla koşulu birleştirirken karmaşık hale gelebilir. Operatör önceliğini anlamak ve parantez kullanmak, net ve doğru ifadeler yazmaya yardımcı olur.

C#'ta mantıksal operatörlerin öncelik sırası şöyledir:

  1. DEĞİL (!)
  2. VE (&&)
  3. VEYA (||)

İşte karmaşık bir boolean ifadesi örneği:

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

Karmaşık olumsuzlamaları basitleştirmek için De Morgan Yasalarını kullanın:

// Instead of:
if (!(age >= 18 && score > 70))
{
    // This is equivalent to:
    if (age < 18 || score <= 70)
    {
        Console.WriteLine("Not eligible");
    }
}

Kısa devre değerlendirmesi: && ve || ile, C# yalnızca gerekli olanı değerlendirir:

// Eğer user null ise, C# ikinci koşulu değerlendirmeyecek
if (user != null && user.IsActive)
{
    Console.WriteLine("Active user");
}

Netlik için, katı bir şekilde gerekli olmasa bile açık parantezler kullanın:

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

Görev

Orta

determineAccess adlı ve aşağıdaki kurallara göre bir kullanıcının bir sisteme erişimi olup olmadığını belirleyen bir yöntem oluştur:

  1. Beş parametre alır:
    • isAdmin (bool): Kullanıcının yönetici olup olmadığı
    • isLoggedIn (bool): Kullanıcının şu anda oturum açmış olup olmadığı
    • timeOfDay (int): Geçerli saat (0-23)
    • isMaintenanceMode (bool): Sistemin bakım modunda olup olmadığı
    • hasEmergencyAccess (bool): Kullanıcının acil durum erişimine sahip olup olmadığı
  2. Aşağıdaki koşullardan HERHANGİ BİRİ doğru olduğunda true döndürür:
    • Kullanıcı bir yöneticidir VE oturum açmıştır
    • Saat çalışma saatleri arasındadır (9-17 dahil) VE kullanıcı oturum açmıştır VE sistem bakım modunda DEĞİLDİR
    • Kullanıcının acil durum erişimi vardır

Kendin dene

public class DetermineAccess
{
    // determineAccess metodunu uygulayın
    public static bool determineAccess(bool isAdmin, bool isLoggedIn, int timeOfDay, bool isMaintenanceMode, bool hasEmergencyAccess)
    {
        // Kodu buraya yazın
        
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online C# derleyicisi