25.5 switch에서 판별할 수 있는 자료형 알아보기
switch에서 판별할 변수는 정수 자료형만 사용할 수 있고, 실수 자료형(float, double)은 사용할 수 없습니다. 단, 문자 자료형(char)도 정수 자료형이므로 switch에서 사용할 수 있습니다.
switch_char.c
#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지 #include <stdio.h> int main() { char c1; scanf("%c", &c1); // 값을 입력받음 switch (c1) // c1의 값에 따라 분기 { case 'a': // 문자 a일 때 printf("a입니다.\n"); break; case 'b': // 문자 b일 때 printf("b입니다.\n"); break; default: // 아무 case에도 해당되지 않을 때 printf("default\n"); break; } return 0; }
소스를 컴파일하여 실행한 뒤 a를 입력하고 엔터 키를 누르세요.
실행 결과
a (입력) a입니다.
switch에서 문자 자료형을 사용해도 정확히 동작합니다. 여기서 case에는 숫자 대신 case 'a':처럼 ' ' (작은따옴표)를 사용하여 문자를 지정해줍니다. 단, C 언어에서는 case "Hello":처럼 case에 문자열은 사용할 수 없습니다.