더북(TheBook)

2를 대신하여 j라는 변수를 이용한 반복문을 추가해서 구구단 전체를 출력하도록 만들었습니다. 중첩 반복문을 사용할 때 주의해야 할 점은 사용하는 변수명을 겹치지 않게 하는 것입니다. 다음 코드처럼 첫 번째 반복문과 두 번째 반복문에 똑같은 i 변수를 사용하면 이는 별개가 아닌 동일하게 인식됩니다. 다음 코드의 출력 결과와 앞 코드의 출력 결과를 비교해 보면 차이점을 알 수 있습니다.

> for i in range(2, 10):
>     for i in range(1, 10):
>         print("{} * {} = {}".format(i, i, i*i))
1 * 1 = 1
2 * 2 = 4
3 * 3 = 9
4 * 4 = 16
5 * 5 = 25
6 * 6 = 36
7 * 7 = 49
8 * 8 = 64
9 * 9 = 81
1 * 1 = 1
2 * 2 = 4
3 * 3 = 9
4 * 4 = 16
5 * 5 = 25
6 * 6 = 36
7 * 7 = 49
8 * 8 = 64
9 * 9 = 81
(...)

1번째 반복문 for i in range(2, 10)에서 i2부터 시작하지만, 2번째 반복문에 진입하면 i 값이 range(1, 10)에 따라 다시 1로 재할당됩니다. 이렇게 변수명을 중복해서 사용할 경우 가장 최근 반복문을 기준으로 변수 값이 정해지므로 의도하지 않은 결과가 나올 수 있다는 것을 주의해야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.