-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
switch case문 안에 for문
19.01.15 17:42 작성 조회수 1.73k
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;
}
답변을 작성해보세요.
2
나도코딩
지식공유자2019.01.23
안녕하세요, 나도코딩입니다.
재미있는 시도입니다 !
하지만 결론적으로는, 잘못된 구문입니다.
switch 란 각각의 경우 (case) 에 대해 분기로 처리하도록 하기 위함이며, case 뒤에는 상수값이 들어와야 합니다. 그런데 i 는 변수이기 때문에 바로 쓸 수가 없습니다. 만약 case 10 : 이런 식으로 작성하셨다면 코드가 수행은 될 거예요. 하지만 그렇다고 하면 for 문을 쓰는 것이 의미가 없어지지요, 1씩 증가하며 커지는 수를 변수에 할당하고 이를 case 에 쓰려는 건데 막상 변수는 쓸 수 없으니까요 ^^
감사합니다.
답변 1