[C언어] switch문 사용법 & 예제 총정리
- Language/C , C++ , C#
- 2019. 7. 22.
조건문 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문은 크고 작다를 표현할 수 없습니다. 오직 동등조건만 검사할 수 있는데요. 그렇기에 범위를 표현하기가 힘듭니다. 하지만 방법이 전혀 없는 것은 아닙니다. 위와 같이 나누기를 했을 때 소수점이 절삭된다는 점을 응용하여 억지로 짜실 수는 있습니다. 하지만 저것도 십의자리가 딱딱 떨어지는 점수이기에 가능한 것이지 88점~100점이 A 74점~88점이 B 이런 식으로 십의 자리 단위가 규칙적이지 않으면 불가능하겠군요.
'Language > C , C++ , C#' 카테고리의 다른 글
[C언어] for문 사용법 & 예제 총정리 (4) | 2019.07.24 |
---|---|
[C언어] while문 사용법 & 예제 총정리 (0) | 2019.07.23 |
[C언어] if문 사용법 & 예제 총정리 (9) | 2019.07.21 |
[C언어] 아두이노 설치 / 다운로드 방법 (0) | 2019.05.28 |