인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

MYUNG IN LEE님의 프로필 이미지

작성한 질문수

C 프로그래밍 - 입문부터 게임 개발까지

Switch Case

switch case문 안에 for문

작성

·

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 문에서 사용한 breakfor문과 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 에 쓰려는 건데 막상 변수는 쓸 수 없으니까요 ^^

감사합니다.