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

댓글(0)

Designed by JB FACTORY