IT 정보/C언어

[C/VC++/MFC] switch문

김윤석 2007. 12. 20. 16:56
[C/VC++/MFC] switch문

하나의 조건에 의해 여러가지 실행문 중 한가지를 선택 실행할 수 있는 명령문이다.
형식
switch(수식){
case 값1 : 문장1;문장2;문장3;….문장n;break;
case 값2 : 문장1;문장2;문장3;….문장n;break;
case 값3 : 문장1;문장2;문장3;….문장n;break;
.
.
case 값n : 문장1;문장2;문장3;….문장n;break;
default : 문장1;문장2;문장3; …. 문장n;
}

switch 문에서는 (수식)의 결과 값과 case 다음에 나오는 값과 일치하게 되면 그 행으로 점프하여 그 다음에 나오는 문장들을 수행한다. if else 문보다 선택적인 수행을 할 경우 조금 더 명확하게 파악하게 해주는 구조를 갖고 있다. 각 case 다음에 나오는 값들은 항상 정수 상수여야 한다. 명령문들 다음에는 break 문이 올수 있는데 이는 문장들을 수행하고 switch 문을 종료시켜 주는 역할을 한다. break 문이 없으면 그 다음 문장들을 계속 수행하게 된다.
default 다음에 나오는 문장은 수식의 값과 case 다음에 나오는 값들과 일치하는 값이 없을 경우 수행하는 문장이며,default 다음에는 break 문을 써주지 않아도 자동적으로 swith 문이 종료된다.

예제 5)
#include<stdio.h>
main(){
char a;
printf(" 상품 코드를 입력하세요!!\n");
a=getchar();
switch(a){
case 'P' : printf("선택하신 상품은 프린터 입니다. A\n");break;
case 'T' : printf("선택하신 상품은 텔레비젼입니다.\n");break;
case 'C' : printf("선택하신 상품은 자동차 입니다.\n");break;
case 'D' : printf("선택하신 상품은 컴퓨터 입니다.\n");break;
default : printf("코드 에러\n");
}
}


예제 6)
#include <stdio.h>
#include <conio.h>
void main(){
int kor,eng,mat,tot;
float avg;
char hak;
printf(" 국어 영어 수학점수를 입력하세요 : ");
scanf("%d %d %d",&kor,&eng,&mat);
tot= kor+eng+mat;
avg=tot/3.0;
switch((int)avg/10)
{
case 10:
case 9: hak='A';break;
case 8: hak='B';break;
case 7: hak='C';break;
case 6: hak='D';break;
default: hak='F';
}
printf(" 국어 : %d 영어 :%d 수학 : %d\n",kor,eng,mat);
printf(" 총점 : %d 평균 : %.2f 학점 : %c\n",tot,avg,hak);
getch();
}
예제6 실행결과 보기



출처 :  http://www.it-bank.or.kr/prom/c_main.htm