C언어의 반복문: while문의 이해와 활용
프로그래밍을 배우는 과정에서 반복문은 필수적인 요소입니다. 반복문은 특정 조건이 만족될 때까지 같은 코드를 여러 번 실행하는 기능을 제공하여, 효율적인 코드 작성을 가능하게 합니다. C언어에서는 대표적으로 while문, for문, 그리고 do-while문이 존재하는데, 이번 포스트에서는 특히 while문에 대해 상세히 알아보도록 하겠습니다.

while문의 기본 구조
while문은 기본적으로 특정 조건을 체크하여 그 조건이 참인 동안 실행 문을 반복합니다. 문법은 다음과 같습니다:
while(조건식) {
실행할 코드;
}
위 구조에서 조건식의 평가 결과가 true일 경우, 중괄호 내에 있는 실행할 코드가 수행되며, 이후 다시 조건식을 확인합니다. 만약 조건식이 false가 되면 while문을 종료하게 됩니다. 이 구조 덕분에 반복문을 통해 특정 작업을 효과적으로 반복할 수 있습니다.
while문 사용 예시
아래는 while문을 활용하여 1부터 10까지의 수를 출력하는 간단한 예제입니다:
#include
int main() {
int i = 1; // 초기값
while (i <= 10) { // 조건식
printf("%d\n", i); // 출력
i++; // 증감식
}
return 0;
}
이 코드에서는 변수를 1로 초기화한 후, 10 이하의 수가 되는 동안 반복하여 각 수를 출력합니다. 조건식인 i가 10보다 작거나 같을 때까지 계속해서 화면에 숫자를 출력하며, 매 반복마다 1씩 증가하게 됩니다.

무한 루프와 그 대응
while문에서 중요한 점은 조건식이 언제 false가 되는지를 잘 고려하는 것입니다. 만약 조건식이 영원히 true 상태로 유지된다면 무한 루프에 빠지게 됩니다. 예를 들어, 조건식이 항상 true인 경우 다음과 같은 형태가 될 수 있습니다:
while (1) {
// 무한 반복되는 코드
}
이러한 무한 루프는 프로그램의 비정상적인 종료를 초래할 수 있기 때문에, 반드시 이를 피하기 위한 조건을 잘 설정해야 합니다. 일반적으로는 반복문 내에 적절한 증감식을 포함시켜 루프를 종료할 수 있도록 해야 합니다.
continue와 break로 반복문 제어하기
while문 내에서는 continue와 break를 통해 보다 정교하게 반복 제어가 가능합니다. continue 문은 다음 반복으로 넘어가게 하여, 특정 조건이 충족된 경우 그 아래 있는 코드를 건너뛰고 조건식으로 돌아가게 만듭니다. 반대로 break 문은 현재의 반복문을 즉시 종료시킵니다.
아래는 continue 문을 사용한 예제입니다. 홀수만 출력하는 코드입니다:
#include
int main() {
int i = 1;
while (i <= 10) {
i++;
if (i % 2 == 0) {
continue; // 짝수일 경우 건너뜀
}
printf("%d\n", i); // 홀수 출력
}
return 0;
}
위 코드에서는 i를 1부터 시작해 10까지 반복하며, 짝수일 경우에는 건너뛰고 홀수인 경우에만 출력합니다. 반면 break 문은 특정 조건을 만족하면 while문을 완전히 탈출하게 해줍니다:
#include
int main() {
int i = 0;
while (i < 10) {
if (i == 5) {
break; // i가 5에 도달하면 반복 종료
}
printf("%d\n", i);
i++;
}
return 0;
}
여기서는 i가 5에 도달하면 반복을 종료하여, 0부터 4까지의 숫자만 출력됩니다.
do-while문과의 비교
while문과 유사한 구조로 do-while문이 존재하는데, 이 반복문은 조건을 검사하기 전에 블록 내의 코드를 최소 한 번은 실행하게 됩니다. 기본 문법은 다음과 같습니다:
do {
실행할 코드;
} while (조건식);
이와 같은 방식은 예외적으로 조건에 관계없이 최소 한 번의 실행을 보장해 줍니다. 이러한 특징으로 인해 사용자 입력을 처리할 때 유용하게 사용될 수 있습니다.
while문 사용의 장점
while문의 가장 큰 장점 중 하나는 반복 횟수를 미리 알지 못할 때 유용하게 사용할 수 있다는 점입니다. 예를 들어 사용자가 입력을 종료할 때까지 계속 반복하거나, 특정 조건이 만족될 때까지 실행하는 프로그램을 만들 때, while문을 사용하는 것이 더 적합합니다.
또한 while문은 특정 조건을 바탕으로 다르게 작동하는 로직을 구현하는 데 유연성을 제공합니다. 예를 들어, 조건에 따라 다른 작업을 수행해야 할 때 while문을 통해 간단하게 이러한 작업을 설정할 수 있습니다.

결론
C언어의 while문은 조건을 기반으로 반복 작업을 수행할 수 있는 강력하고 유용한 도구입니다. 반복문을 통해 코드의 재사용성을 높이고, 복잡한 작업을 효율적으로 처리할 수 있으며, 조건에 따라 유연하게 작동하는 프로그램을 작성할 수 있습니다. 개념을 잘 이해하고 연습함으로써, C언어에서의 프로그래밍 실력을 한층 더 높일 수 있을 것입니다.
이번 글에서는 기본적인 while문의 구조부터 다양한 활용 방법까지 살펴보았습니다. 이러한 지식을 기반으로 더 복잡한 로직을 구현하는 데 도전해 보시길 바랍니다!
자주 물으시는 질문
C언어의 while문은 무엇인가요?
while문은 특정 조건이 참인 동안 계속해서 같은 코드를 반복 실행하는 C언어의 반복 구조입니다.
무한 루프는 무엇이며 어떻게 피하나요?
무한 루프는 조건식이 항상 참인 경우 발생합니다. 이를 피하려면 적절한 종료 조건과 증감식을 포함해야 합니다.
continue와 break의 차이는 무엇인가요?
continue는 현재 반복을 건너뛰고 다음 반복으로 넘어가게 하며, break는 반복문을 완전히 종료시킵니다.
do-while문은 어떻게 다른가요?
do-while문은 조건을 검사하기 전에 블록 내의 코드를 최소한 한 번 실행하여, 특정 상황에서 유용하게 활용될 수 있습니다.