• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

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;

}

답변 1

답변을 작성해보세요.

2

안녕하세요, 나도코딩입니다.

재미있는 시도입니다 !

하지만 결론적으로는, 잘못된 구문입니다.

switch 란 각각의 경우 (case) 에 대해 분기로 처리하도록 하기 위함이며, case 뒤에는 상수값이 들어와야 합니다. 그런데 i 는 변수이기 때문에 바로 쓸 수가 없습니다. 만약 case 10 : 이런 식으로 작성하셨다면 코드가 수행은 될 거예요. 하지만 그렇다고 하면 for 문을 쓰는 것이 의미가 없어지지요, 1씩 증가하며 커지는 수를 변수에 할당하고 이를 case 에 쓰려는 건데 막상 변수는 쓸 수 없으니까요 ^^

감사합니다.