본문 바로가기
language/C

enum과 switch문

by abstract.jiin 2022. 9. 7.
  1. enum
  2. switch문 예제

1. enum

 main 함수 바깥쪽에서 switch문의 case에 상수값 대신에 사용할 이름 지정 
 
enem <enum 이름>{
이름1,   //0
이름2,   //1
이름3   //2 
 
}

enem <enum 이름>{
이름1 =1,   //0
이름2,   //1
이름3   //2 

 

enum SELECT {
 	START =1,
	PAUSE,
	END 
 }; 
 
int main(){
	
 	int sel;
 	printf("1.시작\n2.일시정지\n3.종료\n>>> "); scanf_s("%d", &sel);
	puts("");
	
	switch(sel) {
		case START: puts("시작합니다"); break;
		case PAUSE: puts("잠시 멈춥니다"); break;
		case END: puts("종료합니다"); break;
	}
 }

 

월을 입력받아서 해당 월이 몇 일까지 있는지 알려주는 코드

enum SELECT {
 	Jan =1,
	Feb,
	Mar,
	Aprl,
	May,
	Jun,
	Jul,
	Aug,
	Sep,
	Oct,
	Nov,
	Dec 
 }; 
int main() {
	/*
	 월을 입력받아 해당 월이 몇 일 까지 있는지 알려주는 코드 
	 단, 2월은 28일 or 29일 출력 	
	*/
	
	int month;
 	printf("달을 입력하세요 1~12>>>"); scanf_s("%d", &month);
	puts("");
	
	switch(month) {
		
		if(month >=1 && month <=12){
				case Jan:
		case Mar:
		case May:
		case Jul:
		case Aug:
		case Oct:
		case Dec:
			puts("31일"); break;
	
	
		case Feb:
		 	puts("28일또는 29일"); break;
		 	
		default: 
			puts("30"); 
		} 
		
		else
		puts("1~12 범위의 숫자만 입력하세요")
	
}

2. switch문 예제 

 

버스카드 

	int main() {
		
		int money=20000, gPrice=1250, sPrice=750;
		char sg;
		
		printf("일반 : g\n학생 : s\n>>>"); sg=getchar();
		puts("");
		
		
		switch(sg){
		case 'g':
		case 'G':	
			if(money >= 1250) {
				money-=gPrice;
				printf("%d원 지불하여 잔액 %d원 남았습니다\n",sPrice,money); 
			}
			else {
				printf("잔액이 부족합니다\n현재 잔액 %d원 남았습니다\n",money);
			}
			break;
		
		
		case 's':	
		case 'S':
			if(money >= 720) {
				money-=sPrice;
				printf("%d원 지불하여 잔액 %d원 남았습니다\n",sPrice,money); 
			}
				else {
				printf("잔액이 부족합니다\n현재 잔액 %d원 남았습니다\n",money);
			}
			break;
			
		}
		
		defalts:
				puts("s또는 g만 입력할 수 있습니다.");
			
		}

간단 사칙연산 계산코드 

int main (){
	
		char bu;
		int s1, s2, result;
		
		printf("숫자1 입력:"); scanf_s("%d",&s1);
		
		while(getchar() !='\n');
		printf("연산자 입력:"); bu=getchar();
		printf("숫자2 입력"); scanf_s("%d",&s2);
		
		switch(bu){
			case '+' : result = s1+s2; break;
			case '-' : result = s1-s2; break;
			case '*' : result = s1*s2; break;
			case '/' : result = s1/s2; break;
			default : puts("잘못된 연산자 입니다."); break; 
		}
		
		if(bu == '+' || bu == '-' || bu=='*' || bu =='/' )
			printf("%d %c %d = %d\n",s1,bu,s2,result);
	
	}

'language > C' 카테고리의 다른 글

반복 제어문 while  (0) 2022.09.07
반복 제어문 for  (0) 2022.09.07
조건 제어문  (0) 2022.09.05
입력함수  (0) 2022.09.05
연산자 II  (0) 2022.09.05