C++의 스위치 구조는 else if 구조와 유사하게 다양한 분기 구조를 구현할 수도 있습니다. 즉, 프로그램은 다양한 상황에서 조건에 따라 어떤 분기를 선택할지 판단할 수 있어 프로그램의 활용 가능성이 높아집니다. 일반적인 구조는 다음과 같습니다.
switch(expression){case 상수 표현식 1: 문장 1; case 상수 표현식 2: 문장 3; //... case 상수 표현식 n: 문장 n;
스위치 괄호 뒤에는 세미콜론이 없습니다! 이것은 초보자에게는 쉬운 실수입니다.
프로그램의 실행 흐름은 스위치 뒤의 괄호 안의 표현식 값을 먼저 실행한 후, 대소문자 뒤의 상수와 비교하여 어느 것이 동일한지 확인하는 것입니다. 일단 동일하면 콜론 뒤의 명령문부터 실행이 시작됩니다. 즉, 해당 문이 실행된 후 후속 Case 문도 실행되며 더 이상 Case 값이 같은지 여부를 결정하지 않습니다. 그리고 비교 후 모든 경우가 동일하지 않은 것으로 확인되면 기본값 이후의 명령문이 실행됩니다. 이것이 스위치 구조의 실행 특성입니다.
사용법을 자세히 설명하기 위해 실제 문제를 예로 들어보겠습니다. 1783번 문제는 요일 판단기입니다. 먼저 문제를 직접 읽어보시고 문제를 풀어 제출하신 후 답변을 참고하시기 바랍니다.
참고 답변은 다음과 같습니다.
#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;switch(n){case0:cout<<Sunday;break;case1:cout<<Monday;break;case2:cout<<Tuesday;break; case3:cout<<Wednesday;break;case4:cout<<목요일;break;case5:cout<<Friday;break;case6:cout<<Saturday;break;default:cout<<inputerror!;}return0;}
컴퓨터를 이용해 직접 코딩해 보시고, 너무 자만하지 마세요!