*여러가지 중에 한가지를 선택하게 할수 있다.
*조건이 일치하는 것만 검사한다.
* 변수 int, char형만 쓸수 있다.
*중괄호를 붙이지 않는다.
*ANSI C표준에서는 257개의 case 문을 허용한다.
*두개 이상의 case상수가 같은 값이 될수 없다.
*switch문은 중첩될수 있다.(15단계의 중첩을 허용한다.)
switch(변수) {
case 상수(정수, 문자):
실행문1;
break;
case 상수(정수, 문자):
실행문2;
break;
case 상수(정수, 문자):
실행문3;
break;
......
default:
실행문;
break;
}
p.125
#include <stdio.h>
int main(void)
{
int i;
printf("Enter a number between 1 and 4 : ");
scanf("%d", &i);
switch(i) {
case 1:
printf("one");
break;
case 2:
printf("two");
break;
case 3:
printf("three");
break;
case 4:
printf("four");
break;
default:
printf("unrecognized number");
}
return 0;
}
p.126_1
#include <stdio.h>
int main(void)
{
int a, b;
char ch;
printf("Do you want to:\n");
printf("Add, Subtract, Multiply, or Divide?\n");
do {
printf("Enter first letter: ");
ch = getchar();
printf("\n");
}while(ch != 'A' && ch != 's' && ch != 'M' && ch != 'D');
printf("Enter first number: ");
scanf("%d", &a);
printf("Enter second number: ");
scanf("%d", &b);
switch(ch) {
case 'A' : printf("%d", a+b);
break;
case 'S' : printf("%d", a-b);
break;
case 'M' : printf("%d", a*b);
break;
case 'D' : if(b != 0) printf("%d", a/b);
break;
}
return 0;
}
p.127_2
#include <stdio.h>
#include <conio.h>
int main(void)
{
char ch;
do {
printf("\nEnter character, q to quit: ");
ch = getche();
printf("\n");
switch(ch) {
case 'a' :
printf("Now is ");
case 'b' :
printf("the time ");
case 'c' :
printf("for all good men");
break;
case 'd' :
printf("The summer ");
case 'e' :
printf("soldier ");
}
}while(ch != 'q');
return 0;
}
p.128_3
#include <stdio.h>
#include <conio.h>
int main(void)
{
char ch;
printf("Enter the letter: ");
ch = getche();
switch(ch) {
case 'a' :
case 'e' :
case 'i' :
case 'o' :
case 'u' :
case 'y' :
printf(" is a vowel");
break;
default:
printf(" is a consonant");
}
return 0;
}
p.129_2
#include <stdio.h>
#include <conio.h>
int main(void)
{
char ch;
int i=0, j=0, k=0;
printf("Enter the letter: ");
do {
ch = getche();
switch(ch) {
case '.' :
case ',' :
case ';' :
i++;
break;
case '3':
j++;
break;
default:
k++;
break;
}
}while(ch!='\r');
printf("\n\n");
printf("Mark ', . ;': %d\n", i);
printf("number 3: %d\n", j);
printf("alpabet : %d\n", k);
return 0;
}