본문 바로가기

C언어/C언어 문법

[C언어] switch문

728x90
반응형

switch문

 

switch 문은 함수안에 원하는 값이 반환되었을 때의 경우를 나누어서 코드를 실행할 수 있다.

 

switch 문은 여러 개의 case로 분류되고 해당하는 case부터 아래의 모든 코드를 실행하게 된다.

 

예를 들어 반환된 값이 0 일 때 실행하고 싶다면 case 0:이라고 작성하면 된다.

 

switch 문의 예시로 1~10까지의 값을 입력받고 그 수부터 순서대로 10까지 출력하는 코드를 작성해보겠다.

 

#include <stdio.h>

int main ()
{
    int num;
    printf("1~10 까지의 숫자 입력 : ");
    scanf("%d", &num);
    switch(num)
    {
    case 1:
        printf("1\n");
    case 2:
        printf("2\n");
    case 3:
        printf("3\n");
    case 4:
        printf("4\n");
    case 5:
        printf("5\n");
    case 6:
        printf("6\n");
    case 7:
        printf("7\n");
    case 8:
        printf("8\n");
    case 9:
        printf("9\n");
    case 10:
        printf("10\n");
    default:
        printf("프로그램 종료");
    }
    return 0;
}
 

위 코드는 입력받은 case부터 마지막 case인 10까지 전부 출력하게 된다.

 

default는 case에 상관없이 항상 마지막 case로 실행되는 부분이다.

 

 

 

 

 

 

 

 

switch break문

 

switch 문은 if else 문과 비슷하게 동작하지만 그 쓰임이 좀 더 제한적이다.

 

그래서 break 와 함께 사용하여 좀 더 쓰임을 다양화할 수 있다.

 

case 안에서 break를 사용하면 switch 문을 완전히 탈출할 수 있다.

 

예시로 달을 입력받으면 그 달의 일 수를 출력하는 코드를 작성해보겠다.

 

#include <stdio.h>

int main ()
{
    int month;
    printf("달 입력 : ");
    scanf("%d", &month);
    switch(month)
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        printf("%d월의 일수는 31일 입니다.\n", month);
        printf("프로그램을 종료합니다.");
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        printf("%d월의 일수는 30일 입니다.\n", month);
        printf("프로그램을 종료합니다.");
        break;
    case 2:
        printf("%d월의 일수는 28일 입니다.\n", month);
        printf("프로그램을 종료합니다.");
        break;
    default:
    	printf("잘못 입력하셨습니다.\n프로그램을 종료합니다.");
    }
    return 0;
}
 

break를 사용하면 아래코드를 전부 읽지않고 바로 switch 문을 탈출하게 된다.

 

따라서 입력한 값에 해당하는 코드만을 실행할 수 있게된다.

 

switch문에서 case 안의 코드는 중괄호로 묶어주지 않아도 괜찮다.

 

물론 묶어주어도 오류는 발생하지 않으므로 묶어도 상관은 없다.

 

 

 

 

 

 

 

 

728x90
반응형