1. Introduction
switch
문은 제공된 식과 패턴을 이용해 실행할 문을 선택한다.switch
식은 Switch expression을 참조한다.
- 제공된 식과 패턴이 일치할 때만 실행한다.
switch
문에서 지원되는 패턴은 다음 목록을 참조한다.
2. Example
기본적으로
switch
문은 다음과 같이 사용한다.switch(expression) { case pattern: break; }
아래는 위 표현을 이용한 산술 연산 예시다.
Console.WriteLine(Calculate(10)); private int Calculate(int value) { switch(value) { case <= 10: value += 5; break; } return value; } /* output: 15 */
패턴은 한 번에 여러 개를 지정할 수 있다.
Console.WriteLine(Calculate(11)); private int Calculate(int value) { switch(value) { case <= 10: case > 10: value += 5; break; } return value; } /* output: 16 */
패턴을 추가하여 여러 패턴에 대응하는
switch
문을 만들 수 있다.Console.WriteLine(Calculate(12)); private int Calculate(int value) { switch (value) { case <= 10: value += 5; break; case <= 11: value += 4; break; case <= 12: value += 3; break; } return value; } /* output: 15 */
default
패턴을 이용하여 다른 모든 조건을 만족하지 않을 경우 실행할 문을 지정할 수 있다.Console.WriteLine(Calculate(13)); private int Calculate(int value) { switch (value) { case <= 10: value += 5; break; case <= 11: value += 4; break; case <= 12: value += 3; break; default: value += 2; break; } return value; } /* output: 15 */
3. Case guards
지정한 패턴으로 충분하지 않은 경우 케이스 가드를 이용하여 추가 조건을 지정할 수 있다.
Console.WriteLine(Calculate(5)); Console.WriteLine(Calculate(-1)); private int Calculate(int value) { switch(value) { case > 0 and <= 10: value += 5; break; } return value; } /* output: 10 -1 */