아주 간단한 질문이예요
무크
2023.04.01
#includestdio.h
#includestdlib.hint main(void)
{
int a = 5, b;
switch(a/3)
{
case 1: b = 1;
case 3: b = 3; break;
default: b = 4;
}
printf(%d\n, b);
system(pause);
return 0;
}
이렇게 코드를 짜면 스위치에서 왜 케이스 3 에 걸려서 3만 출력되는건가요?
5 나누기 3은 1.6666 인데 버려서 1이 되니까 케이스 1로 가서 1찍고 그다음에 3찍고 브레이크가 되야되는거 아닌가요?
printf(%d, a/3); 해봐도 1로 나오구요.. 아무리 생각해도 이해가 안되네요..
-
겨울
아...멍청하게 그 생각을 안했네요..결과적으로 케이스1로 가긴간건데 순차대로 내려가는거였죠..
-
차미
case 1: 에서 b에 1을 대입한 다음
case 3: 에서 b에 3을 대입하고 break하므로 출력하면 3만 나옵니다