C#/제어문

[C#] 조건문 switch-case

도도돋치 2025. 3. 20. 20:33
Contents 접기
728x90

기본 개념

switch-case 문은 여러 조건을 비교할 때 사용하는 조건문
if-else 문보다 가독성이 좋고 실행 속도가 빠를 수 있다!

기본 구조

switch (변수)
{
    case 값1:
        // 실행 코드
        break;
    
    case 값2:
        // 실행 코드
        break;

    default:
        // 위의 모든 case와 일치하지 않을 때 실행
        break;
}

📌 break  case 실행 후 빠져나오는 역할
📌 default → 모든 case와 일치하지 않을 때 실행

간단한 예제 (요일 출력)

int day = 3;

switch (day)
{
    case 1:
        Console.WriteLine("월요일");
        break;
    case 2:
        Console.WriteLine("화요일");
        break;
    case 3:
        Console.WriteLine("수요일");
        break;
    case 4:
        Console.WriteLine("목요일");
        break;
    case 5:
        Console.WriteLine("금요일");
        break;
    default:
        Console.WriteLine("주말");
        break;
}

💡 결과: 수요일

break가 없으면 어떻게 될까?

 break를 빼면 다음 case도 실행됨
int num = 2;

switch (num)
{
    case 1:
        Console.WriteLine("하나");
    case 2:
        Console.WriteLine("둘");
    case 3:
        Console.WriteLine("셋");
    default:
        Console.WriteLine("기타");
}

💡 결과

둘  
셋  
기타

 break가 없어서 2부터 끝까지 실행됨

여러 값에 같은 코드 실행

char grade = 'B';

switch (grade)
{
    case 'A':
    case 'B':
        Console.WriteLine("우수한 성적입니다!");
        break;
    
    case 'C':
    case 'D':
        Console.WriteLine("좀 더 노력하세요!");
        break;
    
    default:
        Console.WriteLine("올바른 학점을 입력하세요.");
        break;
}

💡 결과: 우수한 성적입니다!

switch에서 return 사용 (메서드 안에서)

static string GetDayName(int day)
{
    switch (day)
    {
        case 1: return "월요일";
        case 2: return "화요일";
        case 3: return "수요일";
        case 4: return "목요일";
        case 5: return "금요일";
        default: return "주말";
    }
}

Console.WriteLine(GetDayName(4));

💡 결과: 목요일

📖 정리

 switch-case는 여러 값 비교할 때 유용
 break를 넣어야 다른 case로 넘어가지 않음
 여러 case를 묶어서 같은 코드 실행 가능
 default는 모든 case에 해당하지 않을 때 실행

728x90

'C# > 제어문' 카테고리의 다른 글

[C#] 분기문 continue  (0) 2025.03.24
[C#] 분기문 break  (0) 2025.03.24
[C#] 반복문 while, do-while  (0) 2025.03.22
[C#] 반복문 for  (0) 2025.03.21
[C#] 조건문 if, else if, else  (0) 2025.03.20