반응형
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.2 반복 제어문

지정된 문장들을 조건이 만족될 때까지 반복 수행하는 제어문으로 for문, while문, do ~ while문이 있다.

for 문은 반복 횟수가 정해진 경우에 사용되며, while문과 do ~ while 문은 반복 횟수를 명확히 예측할 수 없는 경우에 사용된다. 

 

 

 

4.2.1 for 문

- 형식 : for(초기식; 조건식; 증감식 ) { 반복 실행될 문장; }

- 기능 : 주어진 조건이 만족되는 동안 루프문을 반복 수행한다.

 

 

//for문의 사용 예1

#include <stdio.h>
void main(){
     int i, sum = 0; // 루프 변수 i 는 정수형이어야 함
     for (i=1; i <=10; ++i) {
/*i값이 11이 되면 조건식이 거짓이 되어 루프를 빠져나옴 */ 
          sum = sum + i; 
          printf("%d번째 실행 : sum = %d \n", i, sum);  }
      printf("1부터 %d까지의 합 = %d \n", i-1, sum); }

 

 

 

// 다중 for문의 사용 예(구구단)

#include <stdio.h> 
void main(){ 
    int i, j; 
    printf("\n"); 
    for(i = 2; i <= 9; i ++) 
        printf(" - %d단 -", i); 
    printf("\n"); 

    for( i = 1; i <= 9; i++){
//외부 for문, 행을 만듦
        for( j =2; j <= 9; j++) {
//내부 for문, 열을 만듦 
             printf(" %dx%d=%2d ", j, i, j *i);  }
        printf("\n");  }      }

 

 

 

 

 

4.2.2 while문

- 형식: while(조건식) {

              반복 실행될 문장; }

- 기능 : 주어진 조건이 만족되는 동안 루프문을 반복 수행한다..

 

//while문의 사용 예

#include <stdio.h>
void main(){
   int i = 1, sum = 0;
//while문 초기식(i=1)
   while(i <= 10) {
//i값이 11이 되면 조건식이 거짓이 되어 루프를 빠져나옴 
      sum = sum + i;
      printf("%d번째 실행 : sum = %d \n", i,sum) ;
      i++; // while문 증감식 (i++)  }
   printf("1부터 %d 까지의 합 = %d \n", i-1, sum);  }

 

 

// 다중 while문의 사용 예

#include <stdio.h>
void main(){
   int i, j;
   i = 2; //while문 초기식(i=2) 
   while(i <= 9)  {    //while문 조건식(i<=9) 

      printf(" - %d단-", i ); 
      i++; //증감식(i++)  
               } 
   printf("\n"); 
   i = 1; //외부 while문 초기식(i = 1) 
   while(i <= 9) { //외부 while문, 행을 만듦  
         j = 2; //내부 while문 초기식(j = 2_) 
        while ( j <= 9){//내부 while문, 열을 만듦 
                 printf(" %dx%d=%2d", j, i, j * i) ; 
                 j++; // 내부 while문 증감식(j++)  } 
        printf("\n"); 
        i++; // 외부 while문 증감식(i++) } }

 

 

 

4.2.3 do ~ while문

do ~ while 문은 반복문 내의 명령문을 먼저 실행한 후, 조건을 검사하여 반복 실행 여부를 결정한다. 그래서 do~while문은 while문에 비해 명령문을 적어도 한번은 실행하게 된다. do ~while문의 조건식 뒤에는 세미콜론(;)이 들어가게 된다

 

- 형식 : do {   

                  반복 실행될 문장 ;

                 } while(조건식);

-기능 : 반복문 내에 명령문을 실행한 후 , 주어진 조건을 검사하여 반복 수행 여부를 결정한다.

 

//사용 예

#include <stdio.h>
void main(){
int i = 0, n;
int sum = 0;

printf("n=? "); 

scanf("%d", &n); 
do { //do ~ while 루프  
sum = sum + i; 
i++; } while( i <= n) ; 
// 세미콜록 (; ) 을 쓰지 않으면 에러 발생  
printf("i = %d \n", i); 
printf("i ~ %d까지 합 = %d \n", n, sum); }

 

 

 

4.3 기타 제어문

4.3.1 break문

break문은 반복 명령의 실행 도중에 강제적으로 반복문을 빠져나오는 데 사용된다.

즉, for루프, while 루프, do~while루프, switch 블록 등을 강제로 종료시키고자 할 때 사용된다.

  break문이 실행되면 자신이 포함된 반복문만 빠져나오게 된다. 

 

//break문의 사용예

#include <stdio.h>
void main(){
   int num, sum = 0;

   while(1) { // 무한 while 루프
      printf("num(끝 : 0)...?") ; 
      scanf("%d", &num) ; 
      if(num == 0) 
//num의 값이 0이면 while 루프 종료  
         break; 
//루프 바깥으로 바져나감  
      sum = sum + num;  } 
   printf(" sum = %d", sum); }

 

 

4.2.3 continue문 

for, while, do ~while 루프 실행 중 루프를 다시 실행하고자할 때 사용된다. break문과는 달리 루프를 빠져나오는 것이 아니라 그 루프의 선두로 다시 제어를 옮겨 다음 반복을 실행하도록 한다.

 

//사용예

#include <stdio.h>
#include <math.h>
void main(){

   int num = 1; 
   while(num != 0){ 
//num이 0이 아닌 한 계속 반복되는 while 루프 
      printf("num = ?(0: 종료) :") ; 
      scanf("%d", &num); 
      if(num<0){ 
//음수면 continue 수행, 루프의 선두로 복귀 
          printf("num : Negative number ! \n\n") ; 
          continue; } 
      printf("Squareroot of %d = %f \n\n", num, sqrt(num)); } 
   printf("The end \n"); }

반응형
LIST

+ Recent posts