루프는 지정된 조건이 거짓이 될 때까지 문장 블록을 반복합니다. C에서 루프는 본문(body)과 본문이 몇 번 실행될지 지시하는 제어 문장(control statement)으로 구성됩니다. 루프 마스터는 효율적이고 읽기 쉬운 C 프로그램 작성의 핵심입니다.
이 튜토리얼에서 배울 내용:
C에서 루프의 정의와 목적
루프 유형: 진입 제어 vs 탈출 제어
While 루프 기초
Do-while 루프 기초
For 루프 기초
break와 continue 활용
시나리오에 맞는 적절한 루프 선택
C 루프의 유형
C 루프는 제어 조건의 위치에 따라 분류됩니다:
진입 제어 루프(Entry-controlled loops) – 본문 실행 전 조건 평가 (예: while, for).
탈출 제어 루프(Exit-controlled loops) – 본문 실행 후 조건 평가 (예: do-while).
무한 루프(Infinite loop)는 종료 조건을 절대 만족하지 않을 때 발생합니다. 일반적인 원인은 종료 검사 누락이나 항상 참인 조건입니다.
C While 루프
while 루프는 가장 단순한 진입 제어 루프입니다. 문법:
while (condition) {
statements;
}
조건이 먼저 평가되며, true이면 본문 실행. 각 실행 후 조건이 다시 평가되어 false가 될 때까지 반복됩니다.
예제 – 1부터 10까지 출력:
#include <stdio.h>
int main() {
int num = 1;
while (num <= 10) {
printf("%d\n", num);
num++;
}
return 0;
}
출력:
1
2
3
4
5
6
7
8
9
10
C 프로그래밍 While 루프
C Do-While 루프
do-while 루프는 본문이 최소 한 번 실행됨을 보장하는 탈출 제어 루프입니다. 문법:
do {
statements;
} while (condition);
예제 – 2의 구구단 10까지 출력:
#include <stdio.h>
int main() {
int num = 1;
do {
printf("%d\n", 2 * num);
num++;
} while (num <= 10);
return 0;
}
출력:
2
4
6
8
10
12
14
16
18
20
C 프로그래밍 Do-While 루프
C For 루프
for 루프는 알려진 시작, 끝, 단계로 반복할 때 매우 효율적입니다. 문법:
for (initialization; condition; increment) {
statements;
}
초기화는 한 번만 실행
조건은 각 반복 전 검사
증감식은 루프 변수 업데이트
예제 – 1부터 10까지 출력:
#include <stdio.h>
int main() {
for (int number = 1; number <= 10; number++) {
printf("%d\n", number);
}
return 0;
}
출력:
1
2
3
4
5
6
7
8
9
10
C 프로그래밍 For 루프
복잡한 for 루프는 여러 표현식을 포함하거나 빈 구성 요소도 가질 수 있습니다:
for (int i = 0, j = num; i < j; i++, j--) {
// 문장들
}
중첩 루프는 다차원 배열 등에 자주 쓰입니다. 예제 – 구구단:
#include <stdio.h>
int main() {
int i, j;
int table = 2;
int max = 5;
for (i = 1; i <= table; i++) {
for (j = 0; j <= max; j++) {
printf("%d x %d = %d\n", i, j, i * j);
}
printf("\n");
}
return 0;
}
출력:
1 x 0 = 0
1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
1 x 4 = 4
1 x 5 = 5
2 x 0 = 0
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
C Break 문
break 키워드는 가장 가까운 바깥쪽 루프나 switch 문을 즉시 빠져나갑니다. 예제 – 값이 3에 도달하면 while 루프 정지:
#include <stdio.h>
int main() {
int num = 5;
while (num > 0) {
if (num == 3) break;
printf("%d\n", num);
num--;
}
return 0;
}
출력:
5
4
C Continue 문
continue 키워드는 현재 반복의 나머지를 건너뛰고 다음 루프 사이클로 진행합니다. 예제 – 숫자 5 출력 건너뛰기:
#include <stdio.h>
int main() {
int nb = 7;
while (nb > 0) {
nb--;
if (nb == 5) continue;
printf("%d\n", nb);
}
return 0;
}