파게로그

switch-case문의 제약 본문

콤퓨타 왕기초/C

switch-case문의 제약

파게 2021. 3. 10. 02:44

case에 정수형(ex: int, char, enum)만 사용할 수 있음!

 

 

 

cf.

switch-case문에서 break 안 써서 아래 코드 쭉 실행시키는 걸 fall-through라고 함

fall-through는 코딩 표준에서.. 명시적으로 표기하도록..!

예)

enum day { DAY_MONDAY, DAY_TUESDAY, DAY_WEDNESDAY /*...*/ };

enum day day = DAY_MONDAY;

 

switch (day) {

case DAY_MONDAY:

   printf("Sad\n");

   /* intentional fallthrough */

case DAY_FRIDAY:

   printf("Happy\n");

   break;

default:

   printf("Soso\n");

    break;

}

 

cf. case 레이블은 반드시 상수만 가능(컴파일 시에 결정되어야 한다.)

ex.

int ages[] = {20, 30};

int age;

switch (age) {

   case ages[0]: /* compile error */

     printf("young\n");

     break;

   case ages[1]: /* compile error */

     printf("old\n");

     break;

   default:

     printf("unknown\n");

     break;

}

'콤퓨타 왕기초 > C' 카테고리의 다른 글

for문 제약, while문 제약  (0) 2021.03.10
bool expression  (0) 2021.03.10
size_t  (0) 2021.03.10
연산자  (0) 2021.03.10
C89(C90)에서의 변수 선언 위치  (0) 2021.03.09
Comments