C 기본 문법 – 조건문과 반복문 – 4 – do-while문

C 기본 문법 – 조건문과 반복문 – 4편: do-while문 완전 정복

안녕하세요! C 언어를 차근차근 배워가고 계신 여러분 😊
이번 시간에는 반복문의 마지막 주자, **do-while문**에 대해 공부해보겠습니다!

🧠 do-while문은 마치 “일단 해보고, 조건을 따지는 스타일”의 반복문이에요.
무조건 한 번은 실행하고 나서 조건을 확인해서 반복 여부를 결정합니다.

즉, while문과 비슷해 보이지만
**”최소 한 번은 반드시 실행되는 반복문”**이라는 큰 차이가 있어요!

그럼 지금부터 do-while문의 구조와 특징, 예제, 주의할 점까지
쉽고 풍부하게 알려드릴게요 😄


do-while문의 기본 구조

do {
    실행할 코드;
} while (조건식);
  • 코드를 먼저 실행한 후, 조건식을 검사합니다.
  • 조건이 참(true)이면 다시 반복, 거짓이면 종료합니다.

기본 예제로 쉽게 이해하기

#include <stdio.h>

int main() {
    int i = 1;

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

    return 0;
}

출력 결과:

i = 1
i = 2
i = 3
i = 4
i = 5

🎯 i가 1부터 5까지 증가하면서 반복 실행됩니다!


while문과의 차이점은?

int i = 10;

while (i < 5) {
    printf("while 실행: %d
", i);
}
int j = 10;

do {
    printf("do-while 실행: %d
", j);
} while (j < 5);
  • while문i < 5가 거짓이므로 한 번도 실행되지 않음
  • do-while문은 `조건이 거짓이어도 한 번은 실행됨**

💡 바로 이게 do-while문의 핵심!
실행 → 검사 순서라는 점이 다른 반복문들과의 가장 큰 차이입니다.


사용자 입력 반복 예제

#include <stdio.h>

int main() {
    int num;

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

    printf("입력된 수: %d
", num);
    return 0;
}

🎯 사용자가 양수를 입력할 때까지 계속 요구하는 코드예요!
최소 한 번은 입력받아야 하므로 do-while문이 제격입니다.


메뉴 선택 반복 예제

#include <stdio.h>

int main() {
    int choice;

    do {
        printf("=== 메뉴 ===
");
        printf("1. 게임 시작
");
        printf("2. 랭킹 보기
");
        printf("3. 종료
");
        printf("번호를 선택하세요: ");
        scanf("%d", &choice);

        switch (choice) {
            case 1:
                printf("게임을 시작합니다!
");
                break;
            case 2:
                printf("랭킹을 보여줍니다.
");
                break;
            case 3:
                printf("프로그램을 종료합니다.
");
                break;
            default:
                printf("잘못된 선택입니다.
");
        }

    } while (choice != 3);

    return 0;
}

📌 이처럼 사용자가 종료할 때까지 반복 실행되는 메뉴 시스템에도 아주 유용해요!


무한 루프도 가능할까?

do {
    // 무한 반복
} while (1);

✔️ 물론 가능합니다!
무한 루프가 필요할 때도 do-while(1) 형태로 사용할 수 있어요.


break와 continue와 함께 사용

break 예시

int num;

do {
    printf("숫자 입력 (0 입력 시 종료): ");
    scanf("%d", &num);

    if (num == 0) break;

    printf("입력한 수: %d
", num);
} while (1);

continue 예시

int i = 0;

do {
    i++;
    if (i % 2 == 0) continue;
    printf("%d는 홀수입니다.
", i);
} while (i < 5);

continue는 남은 코드 생략 후 다음 반복으로 점프!


do-while문을 쓰는 대표적인 상황

상황 이유
사용자 입력 최소 1회 요구 무조건 실행 후 검사를 원함
로그인, 비밀번호 체크 입력 → 검사 반복 구조에 적합
메뉴 선택 반복 조건에 따라 탈출 가능한 무한 루프
파일 처리 루프 일단 한 번 읽고 나서 반복 판단

✅ do-while문 한눈에 정리

항목 설명
실행 순서 실행 → 조건 검사
반복 조건 조건이 참이면 계속 반복
최소 실행 보장 무조건 한 번은 실행됨
제어 키워드 break, continue 사용 가능
활용 예 사용자 입력, 메뉴, 검사 후 반복 상황

⚠️ do-while문 사용 시 주의할 점

주의사항 설명
조건이 거짓이라도 1회 실행 의도치 않게 한 번 실행될 수 있음
세미콜론 ; 위치 주의 while (조건); ← 세미콜론 꼭 붙여야 함
break 없이 무한 반복 위험 조건 없이 반복하면 빠져나올 수 없음
변수 초기화 중요 반복 변수는 반드시 초기화하고 사용하기

마무리하며 💬

오늘 배운 do-while문
사용자의 입력을 기다리거나, 조건 확인보다 실행이 우선인 상황에 아주 강력한 도구예요!

특히 입력 → 검사 → 반복 구조를 갖는 실전 프로그램에서 자주 등장합니다.

🎯 반복문의 3대장 — for, while, do-while — 중
do-while은 가장 적게 쓰이지만, 꼭 필요한 순간엔 그 누구보다 유용한 존재랍니다!

다음 시간엔 **함수(function)**에 대해 배워보며
코드 재사용성과 구조적 프로그래밍의 묘미를 알아볼게요 😄

오늘도 끝까지 함께해 주셔서 감사합니다!
코딩은 실천하는 사람에게 열립니다 💻✨

답글 남기기