C언어

[C언어] 반복문

조아리 2024. 8. 8. 11:11
반응형

일정 조건을 만족하는 동안 같은 실행문을 반복하는 게 바로 반복문입니다. 따라서 반복문에는 항상 반복의 조건을 정의하는 조건식과 조건을 만족했을 때 실행하는 문장이 있습니다.

 

다음은 반복문별 실행되는 순서를 나타내는 그림입니다.

반응형

 

while문 

while문은 조건식을 먼저 검사하고 조건식이 참인 동안 실행문을 반복합니다.

 

#include <stdio.h>

int main(void){
    int a = 1;

    while(a < 10){
    	a = a * 2;
    }

    printf("a : %d\n", a);

    return 0;
}

 

실행 결과

a : 16

 

위 코드에서 while문의 흐름을 확인해 보도록 하겠습니다.

  1. a(1) < 10 : 참
  2. a(1) = a(1) * 2 --> a = 2
  3. a(2) < 10 : 참
  4. a(2) = a(2) * 2 --> a = 4
  5. a(4) < 10 : 참
  6. a(4) = a(4) * 2 --> a = 8
  7. a(8) < 10 : 참
  8. a(8) = a(8) * 2 --> a = 16
  9. a(16) < 10 : 거짓
  10. while문 종료

즉 조건(a<10)을 만족하는 동안 실행문을 계속해서 실행하는 반복문인 것입니다.

 

for문

for문은 보통 실행문을 원하는 횟수만큼 반복할 때 사용합니다.

 

#include <stdio.h>

int main(void){
    int a = 1;
    int i;

    for(i = 0; i < 3; i++){
    	a = a * 2;
    }
    printf("a : %d\n", a);

    return 0;
}

 

실행 결과

a : 8

 

위 코드의 for문을 살펴보겠습니다. 

 

  1. i = 0
  2. i(0) < 3 : 참
  3. a(1) = a(1) * 2 --> a = 2
  4. i(0)++ --> i = 1
  5. i(1) < 3 : 참
  6. a(2) = a(2) * 2 --> a = 4
  7. i(1)++ --> i = 2
  8. i(2) < 3 : 참
  9. a(4) = a(4) * 2 --> a = 8
  10. i(2)++ --> i = 3
  11. i(3) < 3 : 거짓
  12. for문 종료

 

i를 0으로 초기화 한 후에 2까지 총 3번(i < 3)을 반복했습니다. 이처럼 for문은 초기식, 조건식, 증감식의 위치가 한 곳에 몰려 있어서 원하는 횟수만큼 반복하기에 좋습니다.

 

do ~ while문

이전의 반복문들은 조건식을 먼저 확인했지만 do ~ while문은 일단 반복할 문장을 실행한 후에 조건을 검사합니다.

 

#include <stdio.h>

int main(void){
    int a = 1;

    do{
    	a = a * 2;
    } while(a < 10);

    printf("a : %d\n", a);

    return 0;
}

 

실행 결과

a : 16

 

위 코드의 do ~ while문의 흐름을 파악해 보도록 하겠습니다.

 

  1. a(1) = a(1) * 2 --> a = 2
  2. a(2) < 10 : 참
  3. a(2) = a(2) * 2 --> a = 4
  4. a(4) < 10 : 참
  5. a(4) = a(4) * 2 --> a = 8
  6. a(8) < 10 : 참
  7. a(8) = a(8) * 2 --> a = 16
  8. a(16) < 10 : 거짓
  9. do ~ while문 종료

 

a < 10을 먼저 검사하지 않고 안의 실행문을 먼저 수행한 것을 확인하실 수 있습니다.

반응형