본문 바로가기
쿤즈 Dev/C

[C언어] 반복문 세 번째 - do while

by :)Koon 2020. 9. 15.

앞서 반복문 두개를 알아보았습니다. 반복문 for 와 반복문 while 입니다. 거듭 강조해서 말씀드리지만 C언어로 프로그래밍을 할 때에는 조건문, 반복문은 필수입니다. 거기에 앞으로 포스팅해드릴 포인터와 구조체, 그리고 파일관련 프로그래밍까지 모두 이 기초적인 방법을 이용해서 여러가지 알고리즘을 만들어 나갑니다.

 

 

오늘 포스팅은 반복문 세 번째로 do while 문에 대해서 알아보도록 하겠습니다.


반복문 do while 구문에 대해서 알아보자!

반복문 do while 구문은 앞서 알아본 while 구문과 동일합니다. 다만 다른것이 있다면 반복문 내부를 최초 1회 실행을 하느냐 하지 않느냐 라는 것입니다. 반복문 사용법은 아래와 같습니다.

do {
...
} while (표현식) ;

위에 보시는바와 같이 표현식에 해당하는 조건이 가장 마지막에 등장합니다. 따라서 소스코드를 따라서 실행하다가 do while 구문을 만나게 되면 내부 블록을 1회 실행하게 되고 마지막에 조건에 따라 추가적인 반복을 할지 결정하게 됩니다.

 

표현식에 해당하는 조건은 항상 true 인지 false 인지 판단이 가능하도록 설계를 해야 합니다. 그렇지 않으면 이 역시 무한 반복문이 되어 버릴 수도 있습니다.

 

그럼 소스코드를 통해서 조금 더 자세히 알아보도록 하겠습니다.


소스코드1 dowhile.c

#include <stdio.h>

int main(int argc, const char* argv[]) {
    int i=0;

    do {
        printf("%d ", i);
        ++i;
    } while (i < 10);

    return 0;
}

결과1

0 1 2 3 4 5 6 7 8 9

초기값 셋팅을 위해서 변수 i를 선언과 동시에 0으로 초기화 했습니다. 그리고 do while 구문 안으로 들어가게 됩니다. 내부에서는 i값을 출력하고 i를 1씩 증가시켰습니다.

 

2020/08/07 - [쿤즈 Dev/C] - [C언어] 연산자의 종류에 대해서 알아보자

 

[C언어] 연산자의 종류에 대해서 알아보자

지난 포스팅에서 첫 프로그래밍을 해보았습니다. 출력하고 싶은 메세지를 마음껏 출력하고 입력받고 싶은 메세지를 여러가지 방법으로 입력받아 보셨나요? 기본적인 내용이지만 꼭 필요한 내��

koonsland.tistory.com

그리고 while 을 만나 조건 i < 10 을 비교합니다. 변수 i 값이 10이 되기 전까지는 조건 i < 10 이 항상 true 이기 때문에 반복문 내부를 계속 실행하게 됩니다. 그러다가 조건이 false 가 되는 순간 반복문을 빠져나오고 프로그램이 종료하게 됩니다.

 

 

그렇다면 구구단 프로그램을 do while 로 수정해 보도록 하겠습니다.


소스코드2 dowhile_gugudan.c

 

#include <stdio.h>

int main(int argc, const char* argv[]) {
    int dan = 2;
    int i = 1;

    do {
        do {
            printf("%d * %d = %d\n", dan, i, dan * i);
            ++i;
        } while (i < 10);
        
        ++dan;
        i = 1;
        printf("\n");
    } while (dan < 10);

    return 0;
}

결과2

2 * 1 = 2
2 * 2 = 4
2 * 3 = 6

9 * 8 = 72
9 * 9 = 81

반복문 while 과 마찬가지로 단을 표현하는 변수와 1부터 9까지 증가하는 변수를 선언하고 초기화했습니다. 나머지는 모두 while 문과 동일한 패턴의 프로그래밍입니다. 다만 조건이 가장 하단에 나오기 때문에 항상 조건성립에 맞게 프로그래밍을 해주어야 합니다.


오늘 포스팅까지해서 반복문 세 가지(for, while, do while) 을 알아보았습니다. 다양한 종류에 데이터를 찾거나 정렬하기 위해서 반복문은 필수입니다. 추후 함수를 이용해서 반복할 수도 있지만 기본적인 반복문 패턴을 아는것이 중요합니다.

댓글