반응형
SMALL

학습목표

1. 프로그램의 제어 구조를 이해하고 필요성에 대해 생각해 본다.

2. 선택문 제어문(if문, switch문, goto문)의 사용 방법을 이해하고 적용할 수 있다.

3. 반복 제어문(for문, while문, do~while문)의 사용 방법을 이해하고 적용할 수 있다.

4. break문과 continue문의 사용 방법과 차이점을 이해할 수 있다.

 

주요용어

제어구조, if문, if~else문, switch문, goto문, for문, while문, do~while문, break문, continue문

 

 

4.1.2 switch문

switch ~ case 문은 다양한 경우의 처리가 가능한 제어문이다. 다중 선택의 경우 if문에 비해 switch ~ case 문이 보다 간결하게 표현되는 장점이있다.

- 형식 : switch (수식) {

                   case값 1 : 명령문1;

                   case값 2 : 명령문2;

                            ....

                   default : 명령문 n;   }

- 기능 : 주어진 값에 따라 여러 곳 중 한 곳으로 분기하여 실행한다.

 

 

 

 

// switchansdml break문을 사용하지 않은 예 

#include <stdio.h>
void main(){
   int n;
   printf("n = ?");
   scanf("%d", &n); 

   printf(" n %% 5 = %d \n", n % 5); 
// %%는 %문자 자체를 출력 시킴 
   switch(n % 5){ 
/* 입력된 수를 5로 나누어  
그 나머지에 해당되는 경우로 분기 */ 
      case 0 : printf("나머지는 0 \n") ; 
      case 1 : printf("나머지는 1 \n") ; 
      case 2 : printf("나머지는 2 \n") ; 
   default : printf("나머지는 3 이나 4 \n");  }  }

 

 

 

// switchansdml break문을 사용한 경우 

#include <stdio.h>
void main(){
   int n;
   printf("n = ?");
   scanf("%d", &n);

   printf("n%% 5 = %d \n", n % 5); 
// %%는 % 문자 자체를 출력 시킴 
   switch(n%5){ 
/*입력된 수를 5로 나누어 그  
나머지에 해당되는 경우로 분기 */ 
      case 0 : printf("나머지는 0 \n"); 
         break; 
      case 1 : printf("나머지는 1 \n"); 
         break; 
      case 2 : printf("나머지는 2 \n"); 
         break; 
      default : printf("나머지는 3이나 4 \n"); 
         break;  }  }

 

 

 

 

 

//switch 문의 사용 예2

#include <stdio.h>
void main(){
   enum syllable {Do, Re, Mi, Fa} tone;
// enum syllable 타입의 tone 선언

   for(tone = Do; tone <= Fa; tone +=1) { 
//Do, Fa를 숫자처럼 사용가능 
   switch(tone){ 
      case Do : printf("도는 하얀 도라지 \n");  break;  
      case Re : printf("레는 하얀 레코드 \n");  break; 
      case Mi : printf("미는 하얀 미나리 \n");  break; 
      case Fa : printf("파는 하얀 파랑새 \n");  break;    }   }    }

 

 

 

4.1.3 goto 문

goto 문은 무조건적인 분기 명령으로, 보통 루프(loop)가 여러 개 중첩되어 있을 경우 한꺼번에 루프를 벗어나고자 할 때사용 된다. goto 문은 현재 위치에서 프로그램의 실행 순서를 원하는 곳으로 이동시켜 그곳의 명령문을 수행하게 한다. 그러나 반복문 밖에서 안으로의 분기나, if 문의 범위 안으로 이동할 수 없다.

 

- 형식 : Label :

           goto Label;

           ......

- 프로그램 수행 도중에 원하는 곳으로 제어를 무조건적으로 옮긴다.

 

 

 

goto문의 사용 예1

#include <stdio.h>
void main(){
       int i, n, c = 'A';
       while (1) {
// 조건에 따른 while 반복문
          printf("횟수는 ?") ;
          scanf("%d", &n);
          for(i=1; i <=n; i++){
// n 회 반복하는 for반복문

               printf("%c", c); 
               if( c == 'Q') 
                   goto end; 
// 레이블명 end로 무조건 실행을 옮김  
                c++;   } 
            printf("\n\n") ;   } 
end: 
//레이블명(레이블명 다음에는 콜론을 붙임)  
printf("\n\n끝");  }

 

 

반응형
LIST

+ Recent posts