目次
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문 | 최소 한 번은 실행하고 싶은 경우 | 조건이 마지막에 평가되고, 최소 한 번은 실행됨 |