어떤 데이터의 값으로 여러 분기를 나누어야할 때 if문을 반복하는 것보다 더 간단한 방법이 switch문을 활용하는 것이다. switch(데이터) { case 값 : } 형태를 갖는다.
using System;
class program
{
static void Main()
{
int score = int.Parse(Console.ReadLine());
switch (score / 10) {
// 입력된 score 값을 10으로 나눈 몫을 확인한다.
case 10:
Console.WriteLine("Perfect");
break;
case 9:
Console.WriteLine("Exellent");
break;
case 8:
Console.WriteLine("Great");
break;
case 7:
Console.WriteLine("Good");
break;
default :
// 위 조건에 해당하는 경우가 없는 경우 여기로 진입한다.
Console.WriteLine("Try again");
break;
}
}
}
// 입력 : 75
// 결과
// Good
// 입력 : 98
// 결과
// Exellent
각 case는 반드시 break 키워드로 탈출할 수 있어야한다. 만약 주어진 조건에 해당하는 것이 하나도 없다면 default 코드로 진입하거나 default 도 없다면 switch문을 건너뛴다. case 키워드 뒤에는 반드시 상수 값만 올 수 있다. 다른 변수를 비교하는 것은 컴파일 에러를 일으킨다. 사용할 수 있는 자료형도 제한된다. 정수 형식과 문자열 형식만 사용할 수 있다.