이 코드는 여러 가지 puts 호출문 중에서 arg 변수의 값에 따라 하나를 선택한다. puts 함수도 printf처럼 stdio.h에 정의되어 있다. 이 함수는 인수로 전달한 스트링 한 줄을 화면에 출력한다. 각 경우마다 'm', 'r', 'j', 'c'와 같은 문자로 표현하고, default라는 레이블로 표시한 폴백(fallback)C 케이스도 지정했다. default 케이스는 arg의 값과 일치하는 case가 없을 때 선택된다.Exs 6
다음과 같이 switch 문법은 간단하다.
switch (표현식) 문장_또는_블록
switch문의 의미도 상당히 직관적이다. case와 default 레이블은 점프 타깃(jump target)C 역할을 한다. 표현식의 값과 일치하는 레이블의 문장을 실행한다. break문을 만나면 그 문장이 속한 switch문이 종료되고, 이후 switch 다음 문장으로 넘어간다.
이러한 점 때문에 if-else를 반복하는 대신, 다음과 같이 switch문을 사용하는 경우가 훨씬 많다.
switch (count) { default:puts("++++ ..... +++"); case 4: puts("++++"); case 3: puts("+++"); case 2: puts("++"); case 1: puts("+"); case 0:; }
Exs 6 여기 나온 switch문을 테스트하는 프로그램을 작성해 보자. break문 중 몇 개를 지우면 어떻게 되는지도 살펴보자.