본문 바로가기

C언어 자습/혼자공부하는 C언어 (저자 서현우)

C언어의 반복문

for (선언; 조건; 증감) {
	수행할 문장
}
while (조건) {
	수행할 문장 (증감 포함)
}
do {
	수행할 문장(증감 포함)
} while (조건);

이중 반복문의 예

피라미드 쌓기

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main() {
	int floor;
	printf("몇층으로 쌓으시겠습니까?");
	scanf("%d", &floor);

	for (int i = 0; i < floor; i++) {
		for (int k = 0; k < floor-i-1; k++) {
			printf(" ");
		}
		for (int l = 1; l <= 1+(2*i); l++) {
			printf("*");
		}
		printf("\n");
	}

	return 0;
}

 

피라미드를 쌓는 프로그램이다.

이중 반복문을 이해하는데에 매우 유용한 표를 사용하면 된다.

반복횟수 i값 k값 l floor - i -1 1 + (2 * i) 출력내용
1 0 012345678 1 10 - 0 - 1 = 9 1 공백k개*l개
2 1 01234567 123 10 - 1 - 1 = 8 3 공백k개*l개
3 2 0123456 12345 10 - 2 - 1 = 7 5 공백k개*l개
4 3 012345 1234567 10 - 3 - 1 = 6 7 공백k개*l개
5 4 01234 123456789 10 - 4 - 1 = 5 9 공백k개*i개

앞길이 막막해 보인다면 루프 제어 변수인 i, j, k, l .. 값이라도 반복 횟수에 따라 정리해본다면 한번에 이해하기가 쉬울 것이다.

 

반복문의 i j k 와 같은 변수를 반복 인덱스 혹은 루프 카운터라고 부르는데 영어로는

iteration index

loop counter

라고 한다.