C 언어 반복문
IT 위키
더 많은 작업
C 언어 반복문은 조건이 참인 동안 같은 문장을 되풀이해 실행하는 제어문으로, for, while, do-while 세 가지가 있다.
| 문 | 조건 검사 시점 | 최소 실행 횟수 | 주로 쓰는 곳 |
|---|---|---|---|
for |
반복 전 | 0회 | 반복 횟수가 정해져 있을 때 |
while |
반복 전 | 0회 | 횟수보다 조건으로 끝날 때 |
do-while |
반복 후 | 1회 | 일단 한 번은 실행해야 할 때(메뉴 입력 등) |
for (초기식; 조건식; 증감식) {
문장;
}
초기식을 한 번 실행한 뒤, 조건식이 참이면 문장을 실행하고 증감식을 실행하는 과정을 되풀이한다.
while (조건식) {
문장;
}
조건식이 처음부터 거짓이면 한 번도 실행하지 않는다.
do {
문장;
} while (조건식);
문장을 먼저 실행하고 조건을 검사한다. 끝의 세미콜론을 빠뜨리면 컴파일 오류다.
break: 가장 안쪽 반복문을 즉시 빠져나간다.continue: 이번 회차의 남은 문장을 건너뛰고 다음 조건 검사(for 는 증감식)로 간다.
반복문 문제는 변수의 값을 회차마다 표로 적어 나가면 실수가 없다. 특히 누적 변수의 초깃값을 먼저 본다.
int c = 0;
int i = 0;
while (i < 10) {
i++;
c *= i;
}
printf("%d", c);
| 회차 | i++ 후 i | c *= i 후 c |
|---|---|---|
| 1 | 1 | 0 × 1 = 0 |
| 2 | 2 | 0 × 2 = 0 |
| … | … | 0 |
| 10 | 10 | 0 |
곱셈 누적 변수의 초깃값이 0 이므로 몇 번을 곱해도 0 이다. 출력은 0 이다. 10! 을 구하려면 c 를 1 로 초기화해야 한다. 반대로 덧셈 누적(c += i)은 0 에서 시작해야 한다.