본문 바로가기

Progremming Study/C언어

c언어 기초 _ 조건문 ( switch ~ case )

728x90

* switch ~ case 조건문

 

=> 조건식을 비교하고 해당 조건식이 참이면 종속 문장을 실행, 거짓이면 탈출

 

 

 

switch ~ case의 원형 : 

 

    switch ( 비교할 값 )

    {

        case 해당 값 :

            종속 문장 ;

            break ;

 

        default :

            종속 문장 ;

            break ; 

    }

 

 

// break는 해당 문법을 탈출하는 용도로 사용됨 ( 의도적으로 사용하지 않는 경우도 있음 )

// 비교할 값 공간에는 정수, 정수로 변환할 수 있는 값, 정수가 저장된 변수만 작성 가능

// 각 case에 작성되는 값은 반드시 상수로 작성해줘야 함

// if문 보다 까다롭지만 컴퓨터가 이해하기 더 쉬운 조건문으로 실행 속도가 더 빠름

 

 

 

---------------------------------------------------------------------------

 

 

 

ex)

 

// switch ~ case 원형 예

int num;

printf("입력: ");
scanf("%d", &num);


switch(num)
{
case 1:
printf("num은 1입니다.\n");
break;
case 2:
printf("num은 2입니다.\n");
break;
case 3:
printf("num은 3입니다.\n");
break;
default:
printf("1~3 중 하나를 입력하세요.\n");
break;
}

 

 

 

// 입력된 수가 14보다 큰지 아닌지 출력

int num;

printf("입력: ");
scanf("%d", &num);

switch (num>=14)                                          // 입력된 수가 14보다 크거나 같으면 참으로 1, 거짓이면 0
{
case 1:
printf("14보다 크거나 같은 수");
break;

default:
printf("14보다 작은 수");
break;
}

 

 

 

// 국어, 수학, 영어 점수를 입력받고 평균과 등급을 출력

int ko, ma, en;
double avg;

printf("국어: ");
scanf("%d", &ko);
printf("수학: ");
scanf("%d", &ma);
printf("영어: ");
scanf("%d", &en);

avg = (ko + ma + en) / 3.0;
printf("평균: %.2f\n", avg);

switch ((int)avg / 10)
{
case 10:                                                       // break가 없기 때문에 다음 조건식으로 넘어감 (출력은 case9과 같음)
case 9:
printf("등급: A");
break;
case 8:
printf("등급: B");
break;
case 7:
printf("등급: C");
break;
case 6:
printf("등급: D");
break;
default:
printf("등급: F");
break;
}

 

728x90