아래는 흔하게 볼 수 있는 Switch문이다.
#include <stdio.h>
int main() {
int a = 3;
switch(a){
case 1:
printf("1\n");
break;
case 2:
printf("2\n");
break;
case 3:
printf("3\n");
break;
default:
printf("0");
break;
}
return 0;
}
당연히 실행결과는 3일 것이다.
하지만
이건 어떨까?
#include <stdio.h>
int main() {
float a = 3.14;
switch(a){
case 1.23:
printf("1.23\n");
break;
case 2.34:
printf("2.34\n");
break;
case 3.14:
printf("3.14\n");
break;
default:
printf("0");
break;
}
return 0;
}
당연히 잘 돼야할 것 같은 코드가 이런 에러를 낸다.
clang-7 -pthread -lm -o main main.c
main.c:5:5: error: statement requires expression of integer type
('float' invalid)
switch(a){
^ ~
1 error generated.
exit status 1
그 이유는 Switch문의 인자로 실수를 입력할 수 없기 때문이다.
'프로그래밍 > C, C++' 카테고리의 다른 글
C++ 구조체 Priority Queue (0) | 2021.07.20 |
---|---|
쉽게 짠 구조체 Insertion Sort (0) | 2021.07.13 |
함수 인자에 있는 const는 어떤 의미일까? (0) | 2021.05.28 |
inline 함수란 무엇인가? (0) | 2021.05.25 |
문자열에서 정수로 바꾸기. strcmp 없이 정수로 비교하기 (0) | 2021.05.25 |
댓글