배운 것/Python

[기초 문법] 중첩 while 문 (구구단 출력)

MOR1ATY 2022. 1. 4. 15:02

1 * 1 = 1

1 * 2 = 2

...

9 * 9 = 81

 

와 같은 구구단을 출력하기 위한 프로그램을 만들 때 중첩 while문을 쓸 수 있는데,

 

1
2
3
4
5
6
7
= 1
= 1
while i <= 9 :
    while j <= 9 :
        print("{} * {} = {}".format(i, j, i*j))
        j += 1 
    i += 1
cs

 

이렇게 하면 

 

사진과 같이 1단에서 끝나버린다.

위 코드에서는, 1단이 끝날 때 j값은 9가되고 어떠한 변화도 없이 9로 유지가 되므로 더이상의 진행이 되지 않는 것이다. 안에 들어가 있는 while문의 조건 'j <= 9'를 만족하지 않기 때문이다. 따라서,

 

1
2
3
4
5
6
7
8
= 1
 
while i <= 9 :
    j = 1
    while j <= 9 :
        print("{} * {} = {}".format(i, j, i*j))
        j += 1 
    i += 1
cs

 

와 같이 j값이 다시 1이 될 수 있도록 안에 들어간 while문에 'j = 1'을 추가해주면, 구구단의 9단까지 정상적으로 출력되는 것을 알 수 있다.

 

1
2
3
4
5
6
7
8
9
= 1
= 1
while i <= 9 :
    while j <= 9 :
        print("{} * {} = {}".format(i, j, i*j))
        j += 1 
    j = 1
    i += 1
cs

 

처음 코드에서 크게 수정하지 않고, 이렇게도 할 수 있다.