작성
·
2.2K
0
switch문 안에 case 마저도 일일이 쓰기 귀찮아서 for문을 넣어봤습니다.
(질문은 소스코드에 주석처리 해놓겠습니다.)
int age = 10; switch (age) { for (int i = age; i <= 19; i++) { case i: // case에는 변수를 사용할 수 없는건가요? if (i == 13) { printf("초등학생 입니다.\n"); break; // if, else if 문에서 사용한 break는 for문과 switch문 중에 어디에 적용되는 건가요? 아니면 아예 모순된 문법인가요? } else if (i == 16) { printf("중학생 입니다.\n"); break; } else if (i == 19) { printf("고등학생 입니다.\n"); break; } } default:printf("지정되지 않은 값 입니다.\n"); break;
}
답변 1
2
안녕하세요, 나도코딩입니다.
재미있는 시도입니다 !
하지만 결론적으로는, 잘못된 구문입니다.
switch 란 각각의 경우 (case) 에 대해 분기로 처리하도록 하기 위함이며, case 뒤에는 상수값이 들어와야 합니다. 그런데 i 는 변수이기 때문에 바로 쓸 수가 없습니다. 만약 case 10 : 이런 식으로 작성하셨다면 코드가 수행은 될 거예요. 하지만 그렇다고 하면 for 문을 쓰는 것이 의미가 없어지지요, 1씩 증가하며 커지는 수를 변수에 할당하고 이를 case 에 쓰려는 건데 막상 변수는 쓸 수 없으니까요 ^^
감사합니다.