[C언어] switch문 사용법 & 예제 총정리

조건문 switch문

switch문은 if문과 같이 조건 제어문에 속합니다. 하지만 switch문은 if문처럼 조건식이 <, <=,>,>=와 같은 이상, 이하, 초과, 미만 같은 부등식이 사용될 수 없습니다. if문은 조건식이 true일 경우에 블록이 실행된다고 하면 switch문은 비교할 변수가 어떤 값을 가지냐에 따라 실행문을 선택됩니다. 오직 ==만 비교할 수 있는것인셈입니다. 그러므로 모든 switch문은 if문으로 바꿀 수 있지만 if문에서 부등식이 사용된 경우에는 switch문으로 치환하실 수 없습니다.

 

하지만 switch문을 사용함으로써 if문보다는 좀 더 코드의 가독성이 좋게끔 작성하실 수 있고 if문보다 미세하게 switch문이 빠르기에 switch문으로 작성할 수 있는 코드가 있다고하면 if문보다 switch문으로 코딩하는 습관을 가지는 것도 좋을 듯하네요.

 

switch문 문법

//문법
switch(변수){
    case 값1 : 
        실행문; 
        break;
    case 값2 : 
        실행문; 
        break;  
    default :
        실행문;    
}

//사용법
char input= 'A';
switch(input){
    case 'A' : 
        printf("input의 값은 A입니다.");
        break;
    case 'B' : 
        printf("input의 값은 B입니다.");
        break;  
    default :    
        printf("input의 값은 A과B가 아닌 다른 문자입니다.");
}

switch문은 괄호 안의 변수의 값과 동일한 값을 갖는 case로 가서 실행문을 실행시킵니다. case를 여러 개 사용하여 if문의 else if와 같은 효과를 줄 수 있습니다. 만약 괄호 안의 변수의 값과 동일한 값의 case가 존재하지 않다면 default로 가서 실행문을 실행시킵니다. default는 생략이 가능합니다. 

 

switch문 예제

#include
int main(){
 int score = 80;
 
 switch(score/10){
 	case 9 :
 		printf("A등급입니다.");
 		break;
 	case 8 :
 		printf("B등급입니다.");
 		break;
 	case 7 :
 		printf("C등급입니다.");
 		break;
 	case 6 :
 		printf("D등급입니다.");
 		break;
 	default :
 		printf("F등급입니다."); 
 }
}

Switch문 예제

Switch문은 크고 작다를 표현할 수 없습니다. 오직 동등조건만 검사할 수 있는데요. 그렇기에 범위를 표현하기가 힘듭니다. 하지만 방법이 전혀 없는 것은 아닙니다. 위와 같이 나누기를 했을 때 소수점이 절삭된다는 점을 응용하여 억지로 짜실 수는 있습니다. 하지만 저것도 십의자리가 딱딱 떨어지는 점수이기에 가능한 것이지 88점~100점이 A 74점~88점이 B 이런 식으로 십의 자리 단위가 규칙적이지 않으면 불가능하겠군요.

댓글

Designed by JB FACTORY