English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# Switch 문

세 가지나 더 많은 조건을 테스트할 때 switch 문을 if else 문 대신 사용할 수 있습니다. 여기서 switch 문과 C# 프로그램에서 효과적으로 사용하는 방법을 배울 수 있습니다.

switch 문법의 일반 문법은 다음과 같습니다.

 문법:}}

switch(매칭 표현식/변수)
{
    case 상수-value:
        //를 실행할 문장;
        break;
    default: 
        //를 실행할 문장;
        break;
}

switch 문은 switch 키워드로 시작하며, 이 키워드는 매칭 표현식 또는 대괄호 switch(매칭 표현식 match expression) 내의 변수를 포함합니다. 이 매칭 표현식 또는 변수의 결과는 괄호 {} 내에서 지정된 case 조건에 따라 테스트됩니다. case는 유일한 상수 값을 지정해야 하며, 컬론 :으로 끝납니다. 각 경우는 하나 이상의 실행할 수 있는 문장을 포함합니다. 상수 값과 매칭 표현식/변수의 값이 일치하면 case를 실행합니다. switch 문은 선택적으로 default 레이블을 포함할 수 있습니다. 어떤 case도 실행되지 않으면 default 레이블을 실행합니다. break, return 또는 goto 키워드는 switch 상태에서 프로그램 제어를 종료하는 데 사용됩니다.

다음 예제는 간단한 switch 문을 보여줍니다.

int x = 10;
switch (x)
{ 
    case 5:
        Console.WriteLine("x의 값은"5");
        break;
    case 10:
        Console.WriteLine("x의 값은"10");
        break;
    case 15:
        Console.WriteLine("x의 값은"15");
        break;
    default:
        Console.WriteLine("알 수 없는 값");
        break;
}
출력:
x의 값은10

위에서, switch(x) 문은 변수 x를 포함하고 있으며, 이 값은 각 case와 일치할 것입니다 의 값과 일치하는 경우5、10와15의 세 가지 경우를 포함하고 있습니다. 또한, switch와 어떤 case 값도 일치하지 않으면 default 레이블을 포함하고 있습니다. 변수/표현식 일치하면, 해당 레이블을 실행합니다. 각 case는 : 다음부터 시작하며, 실행할 수 있는 문장을 포함합니다. X의 값은 두 번째 경우의 값과 일치합니다10: 일치하면, 출력 값은 x의 값입니다10.

switch 문은 char, string, bool, int 또는 enum의 반환 값 타입이 비어 있지 않은 표현식을 포함할 수 있습니다.

switch 문은 실행 시간에 대해 각 case를 테스트할 수 있는 표현식을 포함할 수 있습니다.

int x = 125;
switch (x % 2)
{ 
    case 0:
        Console.WriteLine($"{x}는 짝수입니다");
        break;
    case 1:
        Console.WriteLine($"{x}는 홀수입니다");
        break;
}
출력:
125홀수입니다

Switch Case

Switch Case는 유일한 상수 값을 가져야 합니다. bool, char, string, integer, enum 또는 해당可为null 타입이 될 수 있습니다.

주의

C#에서 7.0 이후, switch case는 비유일치 값을 포함할 수 있습니다. 이 경우, 첫 번째 일치하는 case를 실행합니다.

다음과 같은 간단한 switch 문 예제를 고려해 보세요.

string statementType = "switch";
switch (statementType)
{
    case "if.else":
        Console.WriteLine("if...else 문");
        break;
    case "ternary":
        Console.WriteLine("삼항 연산자");
        break;
    case "switch":
        Console.WriteLine("switch 문");
        break;
}
출력:
switch 문

동일한 문장을 실행하기 위해 여러 개의 case를 조합할 수 있습니다.

int x = 5;
switch (x)
{ 
    case 1:
        Console.WriteLine("x = ", 1");
        break;
    case 2:
        Console.WriteLine("x = ", 2");
        break;
    case 4:
    case 5:
        Console.WriteLine("x = ", 4 또는 x = ", 5");
        break;
    default:
        Console.WriteLine("x > ", 5");
        break;
}

모든 case는 break, return, goto 문 또는 다른 방식으로 명시적으로 case를 벗어나야 하며, 프로그램 제어가 case를 벗어나고 기본 case로 이동하지 않도록 해야 합니다.

다음은 return 키워드를 사용한 예입니다.

static void Main(string[] args)
{
    int x = 125;
    Console.Write( isOdd(x)? "짝수 값" : "홀수 값");
}
static bool isOdd(int i, int j)
{
    switch (x % 2)
    { 
        case 0:
            return true;
        case 1:
            return false;
        default:
            return false;
    }
    
    return false;
}
출력:
홀수 값

break, return 또는 goto 문이 없거나 동일한 상수 값을 가진 switch case가 있으면 컴파일 시 오류가 발생합니다.

int x = 1;
switch (x)
{ 
    case 0:
        Console.WriteLine($"{x} is even value");
        break;
    case 1:
        Console.WriteLine($"{x} is odd Value");
        break;
    case 1: // 에러-컨트롤러는 case 태그(" case 1:”)다른 case 태그로 이동
        Console.WriteLine($"{x} is odd Value");
    defaut:
        Console.WriteLine($"{x} is odd Value");
        break;
}

중첩 switch 문

switch 문은 다른 switch 문 내에서 사용될 수 있습니다.

int j = 5;
switch (j
{
    case 5:
        Console.WriteLine(5);
        switch (j - 1)
        {
            case 4:
            Console.WriteLine(4);
            switch (j - 2)
            {
                case 3:
                Console.WriteLine(3);
                break;
            }
            break;
        }
        break;
    case 10:
        Console.WriteLine(10);
        break;
    case 15:
        Console.WriteLine(15);
        break;
    default:
        Console.WriteLine(100);
        break;
}
출력:
5 
4 
3
 기억해야 할 주요 사항:
  1. switch 语句是 if else 语句的代替方法。

  2. switch 문은 if else 문의 대체 방법입니다./switch 문은 지정된 일련의 상수를 테스트하여 표현식과 일치하는 경우를 찾습니다.

  3. 변수.

  4. switch case는 break, return, goto 키워드를 포함해야만 case를 빠져나갈 수 있습니다.

  5. switch는 default 태그를 포함할 수 있으며, case가 실행되지 않을 때 해당 태그를 실행합니다.

  6. C#에서7C# 컴파일러는 case에 ':'가 부족하다는 오류와 함께 상수 값을 출력하며 case를 빠져나갈 것입니다.