Python 입문 | 구문(statement) | 조건에서 반복 while 문


이어서, 또 하나의 제어 구문 “반복"에 대해 알아보겠다. 반복은 2개의 구문으로 되어 있다. 첫번째 조건을 사용하여 반복을 체크하는 “while"구문이라는 것이다.

while 구문의 기본형 (1)

while 조건:
    반복 처리 ......

while 구문의 기본형 (2)

while 조건:
    반복 처리 ......
else :
    반복 종료시 처리 ......

여기에서도 “조건"라는 것이 등장했다. 이것은 if에서 나온 조건과 동일하다. 즉, “True인가? False인가?“를 확인하는 수식 및 변수 혹은 값이다.

이 while 구문은 조건을 확인하고 그것이 True인 동안에는 그 구문의 처리를 반복 실행을 계속한다. 그리고 조건이 False가 되면 반복에서 빠져 나와 다음 처리를 한다. 만약, else:문이 있었다면, 반복을 빠져 나오면서 이를 실행한다.

아래에 간단한 샘플을 보도록 하자.

x = 100
count = 1
total = 0
while count <= x: 
    total = total + count 
    count = count + 1
else: 
    print(str(x) + "까지 합계는 " + str(total) +"이다.") 
print(".....end.")

1에서 변수 x까지의 합을 계산하고 표시하는 샘플이다. x의 값을 다양하게 변경하여 결과를 확인해 보도록 하자.

이 샘플에서는 “while count <= x:“와 같은 while의 조건을 설정한다. 즉, count 값이 x보다 작거나 같은 동안 반복을 계속하고, x보다 커지면 빠져 나오게 된다.

결국은 당연 하지만, 반복 실행하는 과정에서 변수 count 값이 조금씩 커지게 하지 않으면 안된다. 그렇지 않으면, while에서 영원히 벗어날 수 없게 되어 버린다. 이런 경우를 “무한 루프"라고 한다. while을 사용할 때에는 이런 무한 루프에 빠지지 않도록 조건의 내용과 그 결과가 반복에서 어떻게 변화해 가는가를 잘 생각해서 작성을 해야 한다.