C 언어 기초
int n = 2, c = 0;
switch (n) {
case 1: c += 1;
case 2: c += 10;
case 3: c += 100; break;
default: c += 1000;
}
printf("%d\n", c);break가 없는 case를 포함하는 위의 switch 문을 실행했을 때의 출력으로 올바른 것은?
- A10
- B110
- C1110
정답과 해설 보기
정답: B. 110
switch 문은 n의 값에 맞는 case 레이블로 점프하고, 거기서부터 break를 만날 때까지 아래 case의 문도 이어서 실행합니다(폴스루). n은 2이므로 case 2부터 실행을 시작하여, c += 10 다음에 case 3의 c += 100도 실행하고 break로 switch를 빠져나갑니다. c는 10 + 100 = 110입니다. 의도적으로 이어서 실행시키는 경우에는 그 사실을 주석으로 적어 두면 break를 빠뜨린 실수와 구별하기 쉬워집니다.