이중 반복문의 실행 과정을 말로 설명하니 조금 복잡해 보이죠. 한눈에 확인할 수 있게 표로 정리해 보겠습니다. 이중 반복문을 처음 공부하면 실제로 어떻게 작동하는지, i와 j 값이 어떻게 바뀌는지 헷갈릴 수 있습니다. 이럴 때는 직접 표를 그려가면서 값을 확인해 보면 이해하는 데 도움이 됩니다.
표 3-2 이중 반복문의 실행 과정
반복 횟수 |
i 값 |
j 값 |
실행결과 |
1 |
0 |
0 |
*(줄바꿈) |
2 |
1 |
0, 1 |
**(줄바꿈) |
3 |
2 |
0, 1, 2 |
***(줄바꿈) |
4 |
3 |
0, 1, 2, 3 |
****(줄바꿈) |
5 |
4 |
0, 1, 2, 3, 4 |
*****(줄바꿈) |
표로 작성하니 이중 반복문의 실행 과정을 훨씬 이해하기 쉽죠? 과정을 파악하기 어렵다면 이처럼 표로 정리해서 꼭 이해하고 넘어가길 바랍니다.
Note 반복문에서 초깃값을 0부터 시작하는 이유
변수는 하나의 값만 저장할 수 있습니다. 그런데 배열(array)을 이용하면 여러 값을 한 번에 관리할 수 있습니다. 배열은 여러 값이 연속된 공간에 순서대로 존재하고 각 값은 인덱스(index)를 통해 접근할 수 있습니다. 그리고 배열의 인덱스는 0부터 시작합니다. for 문으로 배열의 모든 값에 접근하려면 i를 0부터 시작해 1씩 증가하도록 해야 합니다. 이런 이유로 for 문에서는 보통 i를 0부터 시작합니다.
그러나 항상 그런 것은 아닙니다. 가령 크기가 3인 배열이 있을 때 이 배열의 인덱스는 0, 1, 2이므로 배열의 마지막 값부터 역순으로 접근하려면 인덱스 2부터 시작하도록 i는 배열의 전체 크기인 3에서 1을 빼고 1씩 감소하도록 해야 합니다.
배열에 관한 내용은 6장 배열과 문자열에서 자세히 다루니 여기서는 이런 이유로 for 문의 i가 보통 0부터 시작한다는 점만 알고 넘어가도 됩니다.