Menu
CoddyTech

복합 불리언 논리

Coddy C# 여정의 논리 및 흐름 섹션에 포함된 레슨. 66개 중 9번째.

여러 조건을 결합하면 불리언 논리가 복잡해질 수 있습니다. 연산자 우선순위를 이해하고 괄호를 사용하면 명확하고 올바른 표현식을 작성하는 데 도움이 됩니다.

C#에서 불리언 연산자의 우선순위는 다음과 같습니다:

  1. NOT (!)
  2. AND (&&)
  3. OR (||)

다음은 복잡한 불리언 표현식의 예입니다.

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

드모르간 법칙을 사용해 복잡한 부정을 간소화하세요:

  • !(A && B)는 !A || !B와 같습니다
  • !(A || B)는 !A && !B와 같습니다

비교식을 부정하면 비교 방향이 반대로 바뀝니다. >=는 <가 되고 >는 <=가 됩니다. 다음 두 조건은 서로 동치입니다:

// 다음 대신:
if (!(age >= 18 && score > 70))
{
    Console.WriteLine("Not eligible");
}

// 동등한 코드를 작성하세요:
if (age < 18 || score <= 70)
{
    Console.WriteLine("Not eligible");
}

단락 평가: &&와 ||를 사용하면 C#은 필요한 항목만 평가합니다:

// user가 null이면 C#은 두 번째 조건을 평가하지 않습니다
if (user != null && user.IsActive)
{
    Console.WriteLine("Active user");
}

명확성을 위해 반드시 필요한 경우가 아니더라도 명시적인 괄호를 사용하세요:

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

챌린지

중급

다음 규칙에 따라 사용자가 시스템에 접근할 수 있는지 판단하는 determineAccess 메서드를 만드세요.

  1. 매개변수 5개를 받습니다.
    • isAdmin (bool): 사용자가 관리자 계정인지 여부
    • isLoggedIn (bool): 사용자가 현재 로그인되어 있는지 여부
    • timeOfDay (int): 현재 시간(0-23)
    • isMaintenanceMode (bool): 시스템이 유지 관리 모드인지 여부
    • hasEmergencyAccess (bool): 사용자에게 긴급 접근 권한이 있는지 여부
  2. 다음 조건 중 ANY 하나라도 참이면 true를 반환합니다.
    • 사용자가 관리자 계정이고 로그인되어 있음
    • 시간이 업무 시간(9-17 포함)이고 사용자가 로그인되어 있으며 시스템이 유지 관리 모드가 아님
    • 사용자에게 긴급 접근 권한이 있음

직접 해보기

public class DetermineAccess
{
    // determineAccess 메서드를 구현하세요
    public static bool determineAccess(bool isAdmin, bool isLoggedIn, int timeOfDay, bool isMaintenanceMode, bool hasEmergencyAccess)
    {
        // 여기에 코드를 작성하세요
        
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리 및 흐름의 모든 레슨

직접 연습해 보세요: 온라인 C# 컴파일러