프로그래밍언어/C언어[초급]

[C언어][초급] Chapter28. do while문 기본 구조 – 조건보다 실행이 먼저 되는 반복문

about_IT 2025. 4. 17. 11:51
728x90

while문은 조건이 참일 때만 반복문을 실행했죠.
그렇다면 조건이 **거짓이어도 한 번은 무조건 실행되는 반복문**이 있다면 어떨까요?

바로 그게 do while문입니다.
먼저 실행하고 나서 조건을 검사하는 구조 덕분에, 사용자 입력이나 초기 실행이 필요한 상황에서 유용하게 쓰입니다.


● do while문이란?

do while문은 일단 한 번 실행한 후, 조건을 검사하여 반복 여부를 결정하는 반복문입니다.

do {
    // 반복 실행할 코드
} while (조건식);
  • 코드 블록을 먼저 한 번 실행한 뒤,
  • 조건식이 참이면 다시 반복하고, 거짓이면 종료합니다.

● 기본 예제: 숫자 1~5 출력

int i = 1;
do {
    printf("%d\n", i);
    i++;
} while (i <= 5);

출력 결과:
1
2
3
4
5


● while문과의 차이점

다음 코드를 비교해보세요:

int a = 10;
while (a < 5) {
    printf("while 실행\n");
}
int b = 10;
do {
    printf("do while 실행\n");
} while (b < 5);

결과:

  • while문은 조건이 처음부터 거짓이므로 아무것도 출력되지 않음
  • do while문은 조건이 거짓이어도 한 번은 실행되기 때문에 "do while 실행"이 출력됨

● 사용자 입력과 함께 쓰면 좋은 구조

int num;

do {
    printf("양수를 입력하세요: ");
    scanf("%d", &num);
} while (num <= 0);

조건을 통과할 때까지 최소 한 번은 실행되어야 하는 입력 검증에 자주 사용됩니다.


do while문은 구조상 조건이 거짓이더라도 한 번은 실행되는 특성을 가졌습니다.
그래서 사용자 입력, 초기 실행, 메뉴 처리 등 반복 여부가 실행 이후에 판단될 때 매우 유용합니다.

조건 확인을 나중에 하고 싶을 때는 while이 아닌 do while문을 고려해보세요!


● 실습 문제

문제 1

1부터 5까지의 숫자를 do while문을 이용해 출력하세요.

 

문제 2

조건이 거짓이더라도 "무조건 한 번 출력됩니다."라는 문장을 한 번만 출력하도록 do while문을 작성하세요.

 

문제 3

사용자로부터 양수를 입력받되, 양수가 아닐 경우 계속 입력받도록 do while문을 작성하세요.

 

문제 4

do while문을 사용해 2의 배수(2, 4, 6, ...)를 20 이하까지 출력하세요.

 

문제 5

다음 코드의 출력 결과를 예상해보세요.

int x = 7;
do {
    printf("%d\n", x);
    x++;
} while (x < 7);

 








▶ 정답 확인하기

정답 1

int i = 1;
do {
    printf("%d\n", i);
    i++;
} while (i <= 5);

 

정답 2

int flag = 0;
do {
    printf("무조건 한 번 출력됩니다.\n");
} while (flag == 1);

 

정답 3

int num;
do {
    printf("양수를 입력하세요: ");
    scanf("%d", &num);
} while (num <= 0);

 

정답 4

int i = 2;
do {
    printf("%d\n", i);
    i += 2;
} while (i <= 20);

 

정답 5

출력 결과:

7

※ 조건이 처음부터 거짓이지만, do while문은 무조건 한 번 실행되기 때문에 7이 출력됩니다.

728x90