C 언어 while문 완전 해설 | 기본부터 응용까지 초보자 가이드

1. 소개

프로그래밍에서 루프 처리는 효율적인 작업 실행에 필수적인 요소입니다. C 언어에는 몇 가지 루프 구조가 있으며, 그 중에서도 while 문은 반복 횟수가 사전에 알 수 없을 때 최적의 선택입니다. 이 기사에서는 C 언어의 while 문에 대해 기본 사용법부터 응용 예제까지 초보자도 이해하기 쉽게 설명합니다. 실제 코드 예제를 통해 while 문의 장점을 배우고 실전에 활용하세요.

2. C 언어의 while문이란?

while문은, 조건이 참(true)인 한 처리를 반복하는 루프 구조입니다. 조건이 거짓(false)이 되면 루프가 종료됩니다. 아래 코드는 while문의 기본 구문을 보여줍니다.
int i = 0;
while (i < 10) {
    printf("i의 값은: %dn", i);
    i++;  // 카운터를 증가시킴
}
이 코드에서는 i가 10 미만인 동안 i의 값을 출력합니다. i가 10이 되면 루프가 종료됩니다. while문은 조건에 따라 동적으로 반복 처리를 수행하므로 반복 횟수가 불명확한 시나리오에 적합합니다.

3. while문을 사용해야 할 경우

while문은 반복 횟수가 사전에 정해져 있지 않을 때 특히 유용합니다. 사용자가 “종료”를 입력할 때까지 대기하거나, 외부 센서의 입력을 조건으로 처리를 반복하는 경우에 도움이 됩니다. 아래 코드 예제에서는 사용자가 음수를 입력할 때까지 반복해서 숫자를 받는 프로그램을 보여줍니다.
int value = 0;
while (value >= 0) {
    printf("숫자를 입력하세요: ");
    scanf("%d", &value);
    printf("입력된 값은: %dn", value);
}
이 프로그램은 사용자가 음수 값을 입력하면 루프를 종료합니다. 반복 횟수가 불명확한 시나리오에서 while문은 매우 유연한 선택이 됩니다.

4. while문에서 흔히 발생하는 실수

무한 루프는 while문에서 흔히 발생하는 실수 중 하나입니다. 이는 루프 종료 조건이 영원히 충족되지 않아 발생합니다. 다음 코드는 그 전형적인 예입니다。
int i = 0;
while (i < 10) {
    printf("i의 값은: %dn", i);
    // i++ 를 잊어버렸다!
}
이 프로그램에서는 i의 값이 업데이트되지 않기 때문에, i < 10 조건이 계속 으로 유지되어 프로그램이 종료되지 않고 무한 루프에 빠집니다. 무한 루프는 시스템에 부하를 줄 가능성이 있으므로, 반드시 종료 조건을 만족하도록 설계하는 것이 중요합니다。

5. 실용적인 while문 예시

여기서는 while문을 사용한 실제 프로그램 예시를 몇 가지 소개합니다.

예제1: 사용자 입력 반복

사용자가 ‘종료’를 입력할 때까지 메시지를 표시하는 프로그램입니다.
char input[50];
while (strcmp(input, "종료") != 0) {
    printf("메시지를 입력하세요(‘종료’를 입력하면 종료됩니다): ");
    scanf("%s", input);
    printf("입력된 메시지는: %sn", input);
}

예제2: 누적 처리 반복

다음으로, 합계가 100을 초과할 때까지 숫자를 계속 더하는 프로그램을 소개합니다.
int sum = 0;
int num = 1;
while (sum < 100) {
    sum += num;
    num++;
    printf("현재 합계: %dn", sum);
}
이 예제들은 while문을 활용하여 반복 처리를 얼마나 유연하게 할 수 있는지를 보여줍니다.

6. 응용적인 while문 사용법

while문은 복잡한 처리에도 적용할 수 있습니다. 아래는 이중 while문을 사용하여 2차원 배열을 처리하는 예시입니다.
int i = 0, j = 0;
int matrix[3][3] = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

while (i < 3) {
    j = 0;
    while (j < 3) {
        printf("%d ", matrix[i][j]);
        j++;
    }
    printf("n");
    i++;
}
이 코드는 중첩된 while문을 사용하여 2차원 배열의 내용을 표시합니다. 복잡한 데이터 처리에도 while문은 유효합니다.

7. 다른 루프문과의 비교

C 언어에는 while문 외에도 다양한 루프문이 존재합니다. 아래는 다른 루프문과의 비교입니다.
루프문사용 시나리오특징
while문반복 횟수가 불명확한 경우조건이 참인 동안 반복, 조건은 처음에 평가
for문반복 횟수가 정해져 있는 경우초기화, 조건, 업데이트를 한 줄에 지정 가능
do-while문최소 한 번은 실행하고 싶은 경우조건이 마지막에 평가되고, 최소 한 번은 실행됨
이 비교표는 프로그램의 요구사항에 따라 최적의 루프문을 선택할 때 도움이 됩니다.

8. 요약

이 기사에서는 C 언어의 while 문에 대해 자세히 설명했습니다. while 문은 유연하고 동적인 조건에 따라 반복 처리를 수행하므로, 프로그램의 다양한 시나리오에 대응할 수 있습니다. 무한 루프에 주의하면서 while 문을 효과적으로 사용하여 프로그래밍 실력을 향상시킵시다. 꼭 이 기사에 있는 코드 예제를 시도해 보고, while 문의 강력함을 체험해 보세요.
侍エンジニア塾