본문 바로가기
c언어

c언어 switch문 사용해보기

by 개발자 L 2022. 12. 2.
반응형

c언어 switch문 사용해보기

네 안녕하세요, 이번 포스팅에서는 c언어에서 사용하는 문법 중 하나인 switch문에 대하여 알아보는 시간을 가져보겠습니다.

switch문은 if문을 좀 더 간결하게 나타내 주는 문법입니다.

그래서 한 번에 여러 개의 경우의 수를 다루는데 더 능합니다.

그럼 지금부터 알아보도록 하겠습니다.

 

1. switch문의 기본 구조

switch문은 비유를 하자면 if문과 비슷합니다.

여러 개의 교차로를 하나로 묶어놓은 것이라고 생각하시면 됩니다.

그리고 그 구조는 이렇게 생겼습니다.

switch(제어식)
{
	case c1:
		문장 1;
		break;
	case c2:
		문장 2;
		break;
	...
	default:
		문장 n;
		break;
}

이런 식으로 사용을 하며, switch문에서 사용하는 식은 제어식이라 부릅니다.

이 제어식에는 switch로 제어하고자 하는 변수명이 들어갑니다.

그리고 제어식을 제어하는 경우의 수를 case로 지정을 해주며,

그 case 옆에 있는 c1 자리에 입력이 될 수 있는 것은 '정수 또는 문자'이며, 그 외의 유형은 입력할 수 없습니다.

그리고 case에서 제시하는 경우의 수에 해당하는 것이 아무것도 없다면 default문으로 빼주면서 종료를 시키는 구조를 가지고 있습니다.

그래서 switch는 if를 선언하는 것에 해당을 하고,

case의 경우는 else if에 해당을 하며,

default는 else에 해당한다는 것을 알 수가 있습니다.

결론적으로 switch문은  if문을 그냥 좀 더 간단하게 표현을 한 것과 같습니다.

그래서 취향껏 switch문이 편하다면 switch문으로 쓰시면 되고,

if문이 편하다면 if문으로 쓰시면 됩니다.

그럼 한 가지 예시로 달의 일수를 계산하는 프로그램을 한 번 작성을 해보겠습니다.

반응형

 

#include <stdio.h>

int main()

{
    int month, days;

    printf("달을 입력하세요 : ");
    scanf("%d", &month);

    switch(month)
    {
        case 2:
            days = 28;
            break;

        case 4:
        case 6:
        case 9:
        case 11:
            days = 30;
            break;

        default:
            days = 31;
            break;
    }

    printf("%d월의 일수는 %d입니다.\n", month, days);

    return 0;
}

 

이렇게 한 번 작성을 해봤습니다.

그리고 여기서 case끼리 붙어있는 곳이 있는데,

이건 한 가지의 경우로 묶을 수 있는 경우라서 하나로 묶은 경우입니다.

그래서 break를 의도적으로 생략하여 하나의 결과로 나올 수 있게 한 것입니다.

그럼 결과를 한 번 보도록 하겠습니다.

먼저 2월의 경우입니다.

달을 입력하세요 : 2
2월의 일수는 28입니다.

이어서 일수가 30일인 달의 경우입니다.

달을 입력하세요 : 4
4월의 일수는 30입니다.

마지막으로 일수가 31일인 달의 경우입니다.

달을 입력하세요 : 7
7월의 일수는 31입니다.

이렇게 잘 나오는 것을 볼 수가 있습니다.

이제 여러분들은 if문을 좀 더 간결히 표현하는 방법에 대하여 알게 되셨습니다.

 

여기까지 switch문을 이용하는 방법에 대하여 알아보았는데요,

다음 포스팅에서는 goto문을 이용하는 방법에 대하여 알아보도록 하겠습니다.

긴 글 읽어주신 독자분들께 진심으로 감사드립니다 ~

반응형

댓글