소프트웨어가 정상적으로 작동하기 위하여 ‘미리 약속한 방법’을 소프트웨어 구조라고 합니다. 그중 첫 번째 구조는 일을 순서대로 처리하는 순차 구조였으며, 두 번째 구조는 조건에 따라 처리해야 할 일의 내용이 달라지는 선택 구조였지요. 이제는 마지막 구조인 반복 구조를 살펴볼 차례입니다.
반복 구조는 순차 구조와 조건에 따라 동작하는 내용이 달라지는 선택 구조를 모두 포함하는 구조입니다. 반복은 순차적으로 진행되어야 하며, 얼마나 반복할 것인가는 조건에 따라 선택적으로 진행되기 때문입니다. 결과적으로 반복 구조는 가장 복잡한 소프트웨어 구조라고 할 수 있지요. 반복 구조는 반복해야 하는 ‘횟수’의 개념이 포함됩니다. 즉, 몇 번 반복을 할 것인가에 대한 내용이 포함되는 것이지요. 이러한 반복 횟수는 미리 정해질 수도 있으나, 그렇지 않을 수도 있습니다. 특정 조건에 따라 반복할 것인지 아닌지를 결정할 수 있는 것이지요.
사실 우리는 반복 구조를 매일 경험하고 사용합니다. 체육 시간에 선생님이 달리기 연습을 위하여 운동장을 ‘다섯 바퀴’ 돌라고 하셨다면, ‘다섯 바퀴’라는 반복 횟수가 지정된 반복 구조를 사용한 것입니다. 반복 횟수가 지정되지 않는 반복 구조도 있습니다. 수학 시간에 선생님이 모든 학생은 평가 점수가 ‘80점 이상’이 될 때까지 수학 공부를 반복해야 한다고 말씀하셨다면, 반복 횟수는 지정되지 않고 반복을 시행할지 말지를 결정하는 기준인 ‘80점 이상’만을 제시한 것이지요.
이처럼 반복 구조의 개념을 이해하고, 자신들의 일을 해결하기 위하여 반복 구조를 자유자재로 이용하는 것은 쉽지 않습니다. 꾸준한 연습이 필요하지요. 해결해야 하는 일들의 순서를 결정한 후에, 조건에 따라 해야 할 일들을 정리하고, 반복 구조를 이용하기 위하여 반복 횟수나 조건 등을 찾아서 글로 표현할 수 있다면 코딩은 완성됩니다. 아이들이 세 가지 프로그램 구조를 이해하고 생활 속에서 자연스러운 코딩을 할 수 있는 날이 오기를 희망합니다.