본문 바로가기

C 언어/임베디드 C

switch문(2)

//시험 점수를 입력받아 switch문을 이용하여 학점을 구하는 프로그램

#include <stdio.h>

int main()
{
 int score;
 char grade;
 printf("Please enter examination score: ");
 scanf("%d", &score);
 score = score / 10;
 switch(score)
 {
  case 10:
  case 9:
  {
   grade = 'A';
   break;
  }
  case 8:
  {
   grade = 'B';
   break;
  }
  case 7:
  {
   grade = 'C';
   break;
  }
  case 6:
  {
   grade = 'D';
   break;
  }
  default:
  {
   grade = 'F';
   break;
  }
 }
 printf("The grade is %c\n", grade);
 return 0;
}

결과
Please enter examination score : 77
The grade is C

위의 예에서 각 case문 뒤의 break문은 실행과 동시에 switch문의 실행을 끝나게 하는 역할을 한다. break문이 없을 경우의 실행은 다음과 같다. switch문의 실행은 괄호 속의 정수식 score의 값이 각 case의 정수 값과 비교하여 일치할 정우 그 뒤의 모든 명령문들이 실행된다. 예를 들면 8일 경우 case 8, case 7, case 6, default의 네 개의 명령문이 모두 실행된다. 그러나 break문이 있으므로 case 8의 명령문만 실행을 하고 switch문의 실행을 끝낸다.

첫번째와 두번째  case는 score의 값이 10 또는 9일 경우에 실행된다. 이와 같이 여러 case의 정수 값에 대한 공통된 명령문을 둘 수 있다.

score의 값과 일치하는 case의 정수 값이 없을 경우에는 default에 해당하는 명령문이 실행된다. 만약 score의 정수 값이 없고 default도 없을 경우 아무 명령문도 실행되지 않고 switch문의 실행이 끝난다.
switch문의 case내에는 중첩적인 switch문이 올 수 있다.

'C 언어 > 임베디드 C' 카테고리의 다른 글

아스키코드와 숫자의 구분  (0) 2011.04.05
switch문(3)  (0) 2011.04.05
switch문(1)  (0) 2011.04.04
다중 if문  (0) 2011.04.04
if-else문  (0) 2011.04.04