switch 문

C : 2007. 11. 2. 16:28

*여러가지 중에 한가지를 선택하게 할수 있다.
*조건이 일치하는 것만 검사한다.
* 변수 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;
}

Posted by 청웨일