특정 조건에서는 if else 구문이랑 비슷하면서도 좀 더 쉽게 구현할 수 있다. switch 구문을 사용하는 것이다.
switch (integer-expression)
{
case label1 : statement(s)
case label2 : statement(s)
...
default : statement(s)
}
integer-expression에는 정수, 문자, 열거자를 쓰는 것이 좋다. if else 구문은 위에서부터 밑으로 계속해서 검사해 나가지만, switch 구문은 integer-expression에 따라서 밑의 행을 검사하지 않고 바로 실행할 구문으로 점프한다. 예를 들어 integer-expression이 4라면, case4로 바로 점프해서 간다. 주의해야 할 건 각각의 case마다 끝에 break;을 적어주어야 한다. 그렇지 않으면 case4, case5... 계속해서 실행한다.
int select = 1;
while (select)
{
cout << "숫자를 입력하세요" << endl;
cin >> select;
switch (select)
{
case 0:
{
cout << "while문 탈출" << endl;
break;
}
case 1:
{
cout << "case 1 채택" << endl;
break;
}
case 2:
{
cout << "case 2 채택 break가 없다면?" << endl;
}
case 3:
{
cout << "case 3 채택" << endl;
break;
}
default:
cout << "그 이외의 숫자들" << endl;
break;
}
}
실행 결과.
enum {red, orange, yellow, green, blue, navy, violet};
int band;
cout << "숫자를 입력하세요" << endl;
cin >> band;
while (band >= red && band <= violet)
{
switch (band)
{
case red: cout << "Red" << endl; break;
case orange: cout << "orange" << endl; break;
case yellow: cout << "yellow" << endl; break;
case green: cout << "green" << endl; break;
case blue: cout << "blue" << endl; break;
case navy: cout << "navy" << endl; break;
case violet: cout << "violet" << endl; break;
}
cout << "숫자를 입력하세요" << endl;
cin >> band;
}
실행 결과.