더북(TheBook)

이 코드는 여러 가지 puts 호출문 중에서 arg 변수의 값에 따라 하나를 선택한다. puts 함수도 printf처럼 stdio.h에 정의되어 있다. 이 함수는 인수로 전달한 스트링 한 줄을 화면에 출력한다. 각 경우마다 'm', 'r', 'j', 'c'와 같은 문자로 표현하고, default라는 레이블로 표시한 폴백(fallback)C 케이스도 지정했다. default 케이스는 arg의 값과 일치하는 case가 없을 때 선택된다.Exs 6

다음과 같이 switch 문법은 간단하다.

switch (표현식) 문장_또는_블록

switch문의 의미도 상당히 직관적이다. casedefault 레이블은 점프 타깃(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문 중 몇 개를 지우면 어떻게 되는지도 살펴보자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.