C언어 반복문 for, while, do-while 비교와 활용법

프로그래밍을 하다 보면 같은 동작을 여러 번 반복해야 하는 경우가 많습니다. 예를 들어 1부터 100까지의 합을 구하거나, 배열의 원소를 차례로 출력하는 것처럼 말이죠. 이런 작업을 일일이 코드를 작성하면 비효율적일 뿐만 아니라 가독성도 떨어집니다. 이를 해결하기 위해 C언어에서는 **반복문(loop)**을 제공합니다.
대표적인 반복문은 for문, while문, do-while문입니다. 이 세 가지 반복문은 동작 방식에 차이가 있지만, 결국 동일한 목적을 가지고 있습니다. 이번 글에서는 반복문의 기본 구조, 차이점, 예제, 자주 하는 실수, 그리고 활용법까지 자세히 정리해보겠습니다.
반복문의 필요성
만약 반복문이 없다면, 단순히 “Hello World”를 10번 출력하는 것도 아래처럼 작성해야 합니다.
printf("Hello World\n"); printf("Hello World\n"); printf("Hello World\n"); // ... 계속 반복
하지만 반복문을 사용하면 단 한 줄로 처리할 수 있습니다.
for (int i = 0; i < 10; i++) { printf("Hello World\n"); }
즉, 반복문은 코드의 간결화, 유지보수성 향상, 오류 감소에 크게 기여합니다.
for문
(1) 기본 구조
for (초기식; 조건식; 증감식) { // 반복 실행할 코드 }
- 초기식: 반복에 사용할 변수를 초기화
- 조건식: 반복을 계속할지 결정
- 증감식: 반복 변수를 변경
(2) 예제
for (int i = 1; i <= 5; i++) { printf("i = %d\n", i); }
실행 결과:
i = 1 i = 2 i = 3 i = 4 i = 5
while문
(1) 기본 구조
while (조건식) { // 조건식이 참일 동안 반복 }
- 조건식이 참이면 반복이 계속되고, 거짓이면 종료됩니다.
- 반복 횟수가 명확하지 않을 때 자주 사용됩니다.
(2) 예제
int i = 1; while (i <= 5) { printf("i = %d\n", i); i++; }
do-while문
(1) 기본 구조
do { // 무조건 한 번은 실행되는 코드 } while (조건식);
- 특징: 조건을 나중에 검사하기 때문에 최소 한 번은 실행됩니다.
(2) 예제
int i = 1; do { printf("i = %d\n", i); i++; } while (i <= 5);
세 반복문의 차이점
구분 / for문 / while문 / do-while문
| 실행 조건 | 반복 횟수가 명확할 때 | 반복 조건만 중요할 때 | 최소 1회 실행 보장 |
| 위치 | 초기식, 조건식, 증감식이 한 줄에 있음 | 조건식만 존재 | 조건식이 뒤에 있음 |
| 사용 예 | 배열 순회, 정해진 횟수 반복 | 무한 루프, 입력 대기 | 사용자 입력 메뉴 |
실습: 1부터 100까지 합 구하기
(1) for문 사용
int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; } printf("합: %d\n", sum);
(2) while문 사용
int sum = 0, i = 1; while (i <= 100) { sum += i; i++; } printf("합: %d\n", sum);
(3) do-while문 사용
int sum = 0, i = 1; do { sum += i; i++; } while (i <= 100); printf("합: %d\n", sum);
무한 루프 만들기
- while:
while (1) { printf("무한 반복!\n"); }
- for:
for (;;) { printf("무한 반복!\n"); }
- do-while:
do { printf("무한 반복!\n"); } while (1);
자주 하는 실수
- 세미콜론 잘못 사용
while (i < 10); { // 잘못된 코드 printf("%d\n", i); }
- 조건식 갱신 누락
int i = 0; while (i < 5) { printf("%d\n", i); // i++; 빠뜨리면 무한 루프 }
- do-while 조건에 세미콜론 필수
do { printf("실행\n"); } while (i < 5); // 세미콜론 꼭 필요
결론
- for문: 반복 횟수가 명확할 때 가장 적합
- while문: 조건 중심 반복, 무한 루프에 자주 활용
- do-while문: 무조건 한 번은 실행해야 할 때 유용
C언어에서 반복문은 프로그램의 효율성을 크게 높이는 기본 개념입니다. 세 가지 반복문을 상황에 맞게 적절히 사용하면 복잡한 프로그램도 간결하고 효율적으로 작성할 수 있습니다.