Page 28 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 28

while문 반복

                   어떤 조건이 성립하는 동안 처리(프로그램 명령문 또는 명령어의 집합)를 반복하여 실행하는 것을
                   반복(repetition) 구조라 하며 일반적으로 루프(loop)라고 부릅니다. 이때 while문은 실행 전
                   에 반복을 계속할지를 판단하는데, 이런 구조를 ‘사전 판단 반복 구조’라고 부릅니다. 제어식
                   의 평갓값이 0이 아니면 프로그램 명령문이 반복됩니다.



                     while(제어식) 명령문



                   위에서 말한 반복의 대상이 되는 ‘명령문’을 문법적으로는 루프 본문이라 합니다.



                                   0 → sum
                    1
                                     1 → i
                                                           여기를 지나면 i와 sum의 값이 변화합니다.

                                               No
                                   i는 n 이하                     i   sum
                                                               1    0     1을 더합니다.
                    2                  Yes                     2    1     2을 더합니다.
                                                               3    3
                                 sum + i → sum                            3을 더합니다.
                                                               4    6
                                                                          4을 더합니다.
                                                               5    10
                                    i + 1 → i                             5을 더합니다.
                                                               6    15
                                                                …    …       5까지의 합


                                   [그림 1-12] 1부터 n까지의 합을 구하는 순서도와 변수의 변화


                   프로그램과 순서도의  1 과  2 의 내용은 다음과  같습니다.


                    1  합을 구하기 위한 준비입니다. 합을 저장하는 변수 sum을 0, 반복을 제어하기 위한 변수

                   i를 1로 초기화합니다.
                    2  변수 i의 값이 n 이하인 동안 i의 값을 1씩 증가하면서 루프 본문을 n회 반복 실행합니다.
                      2항인 복합 대입 연산자 ‘+=’은 우변의 값을 좌변에 더합니다. 또한 단항인 증가 연산자 ‘++’는  피연산자의 값을 1 증
                   가(increment)시킵니다.


                   ‘i가 n 이하인지?’를 판단하는 제어식 ‘i <= n’을(순서도의                ) 지날 때 변수 i와 sum 값의 변
                   화를 정리한 것이 위 그림의 오른쪽 표입니다. 프로그램과 표를 비교하며 설명하겠습니다.





                   28   C 알고리즘
   23   24   25   26   27   28   29   30   31   32   33