c언어 제어문 - 2. 선택문 switch ~ case문 break 사용

이전에는 제어문 중에서도 선택문 if문에 대해서 공부했습니다. 이번에는 선택문 switch ~ case문의 사용법에 대해서 공부해보겠습니다. 

 

선택문 switch ~ case문 

switch ~ case문은 if ~ else문과 마찬가지로 조건에 따라서 조건에 해당하는 곳의 문장을 실행시키는 문장입니다. 

 

switch ~ case문의 규칙

1. 조건은 정수식만 사용합니다.
2. 기본적으로 case는 break를 포함합니다.
3. 여러개의 case문을 만들 수 있지만 반드시 콜론(:)을 붙여줘야 합니다. 
4. switch문에서는 비교 연산이 올 수 없습니다. 

 

만약 등급별로 1등급은 300만원, 2등급은 200만원, 3등급은 100만원 그 외 장학금이 없는 차등지급 시스템을 프로그래밍 한다고 해봅시다. 코드에서 rank의 값은 2로 초기화 했습니다. switch문의 조건의 rank의 값은 2가되고 따라서 동일한 숫자가 있는 case 2의 실행문을 실행시키고 break;를 사용해 switch 문을 빠져나오게 됩니다. 

 

break;
현재 진행중인 블록을 빠져나오는 데 사용되고 switch ~ case문을 사용할때 해당 실행문을 끝냈다면 switch문을 빠져나오는데 사용됩니다. 

rank 값이 1 이면 case 1을 실행하고 rank의 값이 2면 case 2를 실행합니다. 각각의 case 영역마다 break가 있는데 해당 블레이크는 모두 switch 문을 빠져나가는데 사용됩니다. 

 

버스를 탄다고 생각해봅시다. 차고지 -> 놀이터 -> pc방 -> 노래방 -> 학교 -> 차고지로 가는 버스 노선도가 있습니다. 저는 노래방에 가고싶어 버스를 탈려고 차고지에 와서 버스를 탑승합니다. 버스가 처음 차고지를 지나 놀이터(case)와 pc방(case) 정류장에 도착하더라도 내 목적지는 노래방이기 때문에 차는 멈추지 않고 계속 출발합니다. 다음 목적지인 노래방에 도착해서 하차벨을 누르고 버스는 목적지인 노래방(case)에 멈추게 되고 본인은 목적지인 노래방에서 노래를 부릅니다(실행) 나는 목적지까지 버스를 잘 타고 왔으니 이제 버스가 필요없게되어 버스를 보내버립니다(break) 

 

#include <stdio.h>

int main(void) {

	int rank = 2;  // 순위 

	switch (rank) {
	case 1:
		printf("1등급의 장학금은 300만원 입니다.");
		break;
	case 2:
		printf("2등급의 장학금은 200만원 입니다.");
		break;
	case 3:
		printf("3등급의 장학금은 100만원 입니다.");
		break;
	default :
		printf("3등급 이하는 장학금이 없습니다.");
		break;
	}

	return 0;
}

 switch ~ case문을 가지고 if ~ else와 동일하게 작동되는 소스를 만들어보거나 if ~ else의 소스코드를 switch ~ case문으로 바꿔서 만들어 보는 것이 switch ~ case문과 if ~ else문을 이해하는데 큰 도움이 될 수 있습니다. 

댓글

Designed by JB FACTORY