English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
세 가지나 더 많은 조건을 테스트할 때 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는 유일한 상수 값을 가져야 합니다. 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 문 내에서 사용될 수 있습니다.
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
switch 语句是 if else 语句的代替方法。
switch 문은 if else 문의 대체 방법입니다./switch 문은 지정된 일련의 상수를 테스트하여 표현식과 일치하는 경우를 찾습니다.
변수.
switch case는 break, return, goto 키워드를 포함해야만 case를 빠져나갈 수 있습니다.
switch는 default 태그를 포함할 수 있으며, case가 실행되지 않을 때 해당 태그를 실행합니다.
C#에서7C# 컴파일러는 case에 ':'가 부족하다는 오류와 함께 상수 값을 출력하며 case를 빠져나갈 것입니다.