본문 바로가기
프로그래밍언어/C언어[초급]

[C언어][초급] Chapter27. while문 반복 구조 – 조건에 따라 반복하는 기본 루프 익히기

by about_IT 2025. 4. 17.

어떤 코드를 반복해서 실행하고 싶을 때?

프로그래밍에서는 어떤 작업을 여러 번 반복해야 할 때가 많습니다.
예를 들어 “1부터 10까지 출력하기”, “정답을 맞출 때까지 계속 입력받기” 같은 상황처럼요.

이런 반복 작업을 위해 사용하는 것이 바로 반복문(Loop)이고, 그 중 가장 기본적인 반복문이 while문입니다.


● while문이란?

while문은 조건이 참인 동안 코드 블록을 반복 실행하는 반복문입니다.

while (조건식) {
    // 조건이 참일 때 반복 실행할 코드
}
  • 조건이 참이면 내부 코드를 실행하고,
  • 조건이 거짓이 되면 반복을 멈춥니다.

● 기본 예제: 1부터 5까지 출력

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

출력 결과:
1
2
3
4
5


● while문 흐름

1. 조건식 검사
2. 참이면 블록 실행
3. 다시 조건식 검사
4. 거짓이 되면 종료

※ 조건식이 처음부터 거짓이면 한 번도 실행되지 않습니다.


● 무한 반복 주의

int i = 1;
while (1) {
    printf("무한 반복 중...\n");
}

조건이 항상 참이면 반복은 끝나지 않습니다.
또는 아래처럼 i++을 빼먹어도 무한 반복에 빠질 수 있습니다.

※ 프로그램이 멈추지 않으면 Ctrl + C로 강제 종료하세요.


● 사용자 입력을 받을 때도 자주 사용

int input;
while (1) {
    printf("0을 입력하면 종료: ");
    scanf("%d", &input);

    if (input == 0)
        break;
}
  • break를 사용하면 반복 중간에 빠져나올 수 있습니다.

● while vs for

구분 while문 for문
사용 상황 반복 횟수를 알 수 없을 때 반복 횟수가 정해져 있을 때
구조 조건만 존재 초기값, 조건, 증감 포함
유연성 더 자유롭지만 실수 가능성 있음 명확하고 깔끔함

while문은 가장 기본적인 반복문으로, 조건만으로 반복을 제어할 수 있어 유연하게 사용할 수 있습니다.
단, 조건을 잘못 설정하거나 증감문을 빠뜨리면 무한 루프에 빠질 수 있으니 주의가 필요합니다.

코드 실행 순서를 정확히 이해하고,
조건 → 실행 → 조건 → 종료 구조를 꼭 기억해두세요.

이제 실습 문제를 통해 while문을 직접 사용해보며 익혀보세요!


● 실습 문제

문제 1

1부터 5까지의 숫자를 while문을 사용하여 한 줄씩 출력하세요.

 

문제 2

변수 i = 10부터 시작하여 1씩 감소시키면서 i가 1보다 크거나 같을 동안만 출력되도록 하세요.

 

문제 3

사용자로부터 숫자를 입력받아, 0을 입력할 때까지 계속해서 출력하는 프로그램을 작성하세요.
(0이 입력되면 "종료합니다."를 출력하고 종료)

 

문제 4

while문을 사용하여 1부터 100까지의 숫자 중 짝수만 출력하세요.

 

문제 5

다음 코드의 출력 결과는 무엇인가요?

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

 








▶ 정답 확인하기

정답 1

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

 

정답 2

int i = 10;
while (i >= 1) {
    printf("%d\n", i);
    i--;
}

 

정답 3

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

    if (num == 0) {
        printf("종료합니다.\n");
        break;
    }

    printf("입력한 숫자: %d\n", num);
}

 

정답 4

int i = 1;
while (i <= 100) {
    if (i % 2 == 0) {
        printf("%d\n", i);
    }
    i++;
}

 

정답 5

출력 결과:

1
2
3