본문 바로가기

프로그래밍, 쉽게 배워보자

반복구조(루프구조)

컴퓨터에게 '1을 다섯번 더하시오' 라는 명령을 내릴 경우,
1. 0+1을 A에 넣으시오.
2. A+1을 B에 넣으시오.
3. B+1을 C에 넣으시오.
4. C+1을 D에 넣으시오.
5. D+1을 E에 넣으시오.
하지만 이것을, '바로 앞의 답에 1을 더하는 일을 다섯번 반복하시오'라고 명령하면 훨씬 간단해집니다. 이렇게 같은 논리로  반복해서 실행하는 구조를 반복구조, 반복구조를 모식도로 그리면 마치 갈고리처럼 생겼다하여 루프구조라고 합니다.

예를 들어, '코끼리코 모양을 한 채, 제자리에서 열바뀌를 뱅뱅 돈 후, 제기차기''를 하는 게임이 있습니다. '뱅뱅 맴돈다.' 라는 동작을 할 때, 1, 2, 3 ... 숫자를 샌다. 컴퓨터가 같은 일을 정해진 숫자만큼 실행할때마다 1, 2, 3  숫자가 하나씩 늘어나는데 이것을 '카운터'  혹은 '카운터변수'라고 부르며 'i'라는 이름이 부여됩니다.
이것을 프로그램으로 작성하면,
1. 왼 손으로 코를 잡고 그 사이에 오른 팔을 넣어 코끼리코 모양을 한다.
2. 카운터를 'i'로 한다.
3. 카운터가 10이 될 때까지
4.         카운터를 소리내어 말한다.
5.         그 자리에서 한 바퀴 돈다.
6.         카운터를 하나 늘린다.
7.         3번으로 돌아간다.
8. 코끼리코 모양을 풀고 재기차기륻 한다.

반복구조반복구조(루프구조)

위 그림의 반복되는 구조가 마치 고리(loop)처럼 보이므로 반복구조를 루프구조라고 합니다. 그러나  카운터를 세기만하면 반복에서 빠져나갈 수 멊습니다. 그렇게 되지 않도록 정해진 횟수의 반복은 '카운터값이 ◻에서 ◻의 사이'와 같이 명령하도록 정해져 있습니다.

그런데!! 이게 끝이 아님! 컴퓨터는 0, 1, 2, 3...과 같이 0부터 세는 것을 기본으로 한다는 사실~ (우리는 1, 2, 3... 이렇게 1부터 세지만~) 그러므로 같은 행위를 10회 반복할때도 '카운터값이 0부터 9까지'처럼 명령하는 편이 적합할 수도 있습니다. 그래서! 프로그래밍을 할 때는 '수는 0번 부터 샌다.'를 기본으로 생각하길!