25.7 연습문제: switch 분기문 사용하기
다음 소스 코드를 완성하여 정수 2, 4, 8을 입력했을 때 문자열 "2", "4", "8"이 출력되게 만드세요.
practice_switch.c
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int num1 = 0; scanf("%d", &num1); switch (num1) { case 1 << ①_____: printf("2\n"); break; case 1 << ②_____: printf("4\n"); break; case 1 << ③_____: printf("8\n"); break; default: printf("default\n"); break; } return 0; }
실행 결과
2 (입력) 2
정답
① 1 ② 2 ③ 3
해설
switch 분기문의 case에는 연산자를 사용한 식을 지정할 수 있습니다. 단, 식의 결과는 정수라야 합니다.
여기서는 1을 시프트 연산했을 때 2, 4, 8이 나와야 하는데 각 숫자를 보면 2의 거듭제곱인 것을 알 수 있습니다. 따라서 << 연산자와 1, 2, 3을 지정하면 case에서 2, 4, 8을 처리할 수 있습니다.