Page 29 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 29
제어식을 처음 지날 때 변수 i와 sum의 값은 실습 1-4의 1 에서 설정한 1과 0입니다. 그 후
반복해서 실행할 때마다 변수 i의 값이 증가되어 1씩 늘어납니다. 변수 sum의 값은 ‘루프 본
문을 수행하는 동안의 합’이며, 변수 i의 값은 ‘다음에 더하는 값’입니다. 즉, i가 5일 때 변수
sum의 값은 ‘1부터 4까지의 합’인 10입니다(sum의 최종 결과값은 변수 i의 값인 5가 더해지기 전의
값입니다). 그리고 i 값이 n을 초과할 때 while문의 반복이 종료되므로 최종 i 값은 n이 아니라
n + 1입니다.
연습 Q6 실습 1-4에서 while문이 종료될 때 변수 i 값이 n + 1이 됨을 확인하세요(변수 i 값을 출력
문제 하도록 프로그램을 수정하세요).
for문 반복
하나의 변수를 사용하는 반복문은 while문보다 for문을 사용하는 것이 좋습니다. 1부터 n까
지 정수의 합을 for문으로 구하는 프로그램을 실습 1-5에 나타내었습니다.
실습 1-5 •완성 파일 chap01/sum_for.c
01 /* 1, 2, …, n의 합을 구합니다(for문). */
실행 결과
02 #include <stdio.h>
1부터 n까지의 합을 구합니다.
03 n의 값 : 5
04 int main(void) 1부터 5까지의 합은 15입니다.
05 {
06 int i, n;
07 int sum; /* 합 */
08 puts("1부터 n까지의 합을 구합니다.");
09 printf("n 값 : ");
10 scanf("%d", &n);
11 sum = 0;
12 for(i = 1; i <= n; i ++) { /* i = 1, 2, …, n */
13 sum += i; /* sum에 i를 더합니다. */
14 }
15 printf("1부터 %d까지의 합은 %d입니다.\n", n, sum);
16
17 return 0;
18 }
그림 1-13은 합을 구하기 위한 (초록색 박스로 표시한 부분) 순서도입니다. 육각형의 루프 범위
(loop limit)는 반복의 시작 지점과 종료 지점을 가리키는 기호로, 같은 이름을 가진 루프 시작
01•기본 알고리즘 29