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

곱셈표를 출력하는 초록색 박스로 표시한 부분의 순서도는 그림 1-15에 나타냈습니다. 순서

                        도의 오른쪽에 있는 그림은 변수 i와 j의 변화를 ●와 ●로 나타낸 것입니다. 바깥쪽의 for문
                        (행 루프)은 변수 i의 값을 1부터 9까지 증가시킵니다. 각각의 반복은 표의 ‘1행, 2행, … 9행’에
                        해당합니다. 다시 말해 바깥쪽의 for문은 세로 방향에 대한 반복입니다.



                        그 각각의 행에서 실행되는 안쪽의 for문(열 루프)은 변수 j의 값을 1부터 9까지 증가시킵니다.
                        즉, 각 행의 가로 방향에 대한 반복입니다. 변수 i의 값을 1부터 9까지 증가시키는 ‘행 루프’는
                        9회 반복됩니다. 그 각각의 반복으로 변수 j의 값을 1부터 9까지 증가시키는 ‘열 루프’가 9회

                        반복됩니다. 열 루프 종료 후 줄 바꿈 문자의 출력(putchar(' / n'))은 1부터 9까지 출력을 완료한
                        행에서 줄을 바꾸어 다음 행을 출력하기 위해 사용했습니다.


                        따라서 이 이중 루프는 다음과 같이 처리됩니다.



                         i가 1일 때 : j를 1 ⇨ 9 증가시키면서 1 * j를 출력합니다. 그리고 줄 바꿈합니다.
                         i가 2일 때 : j를 1 ⇨ 9 증가시키면서 2 * j를 출력합니다. 그리고 줄 바꿈합니다.
                         i가 3일 때 : j를 1 ⇨ 9 증가시키면서 3 * j를 출력합니다. 그리고 줄 바꿈합니다.
                         i가 9일 때 : j를 1 ⇨ 9 증가시키면서 9 * j를 출력합니다. 그리고 줄 바꿈합니다.





                              조금만 더!  개행 문자란 무엇인가요?

                           putchar(' / n');에서 ‘ / n’은 개행 문자(newline)로, 텍스트의 한 행이 끝나고 새로운 행이 시작됨을 의미합
                           니다. 줄 바꿈 문자(line break), EOL(End-Of-Line)이라고도 합니다.




                               행 루프                 변수 i와 j의 변화
                              i : 1, 1, 9           i    j
                                                    1    1  2  3  4  5  6  7  8  9
                               열 루프
                              j : 1, 1, 9           2    1  2  3  4  5  6  7  8  9
                                                    3    1  2  3  4  5  6  7  8  9
                           i * j를 3자리로 출력           4    1  2  3  4  5  6  7  8  9
                                                    5    1  2  3  4  5  6  7  8  9
                               열 루프                 6    1  2  3  4  5  6  7  8  9
                                                    7    1  2  3  4  5  6  7  8  9
                               줄 바꿈
                                                    8    1  2  3  4  5  6  7  8  9
                                                    9    1  2  3  4  5  6  7  8  9
                               행 루프

                                          [그림 1-15] 곱셈표를 출력하는 순서도
                                                                                      01•기본 알고리즘  37
   32   33   34   35   36   37   38   39   40   41   42