[바로바로 파이썬 06] while 문과 반복문의 기초
지금까지는 조건에 따라 흐름을 가르는 방법을 배웠습니다. 이제 같은 코드를 여러 번 실행하는 반복문을 배울 차례입니다. 반복문에는 while 문과 for 문 두 가지가 있으며, 여기서는 while 문부터 차례대로 알아보겠습니다.
while 문 기초 연습하기
while 문은 조건이 참(True)인 동안 같은 코드를 반복해서 실행하는 문법입니다. 간단한 예제 코드를 통해 while 문의 기본 구조와 반복이 어떻게 이루어지는지 알아보겠습니다.
조건식은 앞에서 if 문을 공부할 때 이미 살펴봤습니다. 이번에는 while 문을 사용해 조건식에 따라 코드가 반복되는 과정을 확인해보겠습니다. 우선 while 문의 예제 코드를 입력해 실행한 다음 동작 원리를 알아보겠습니다.
코드에서 하이라이트한 부분이 조건식입니다. 그럼 while 문은 어떻게 동작할까요? 다음 순서를 살펴봅시다.
while 문은 먼저 조건식을 확인하고 그 결과에 따라 코드 블록의 실행 여부를 결정합니다. True이면 while 문의 코드 블록을 실행한 뒤 다시 조건식으로 돌아갑니다. 이 과정을 반복하다가 조건식이 False가 되면 while 문을 종료합니다.이때 조건식이 언젠가는 False가 될 수 있도록 코드 블록을 설계하는 것이 중요합니다. 이 예제에서는 코드 블록의 count = count + 1이 바로 그런 역할을 합니다. count = count + 1은 현재 count의 값에 1을 더한 다음 그 결과를 다시 count에 저장하는 코드입니다. 처음 count가 1이었다면 한 번 실행한 뒤에는 2가 됩니다. 이후 코드 블록이 실행될 때마다 3, 4, 5처럼 값이 하나씩 증가하게 되죠. 결국 count가 6이 되는 시점이 옵니다. 이때 6 <= 5라는 조건식은 False로 평가되므로 while 문의 실행이 종료됩니다. 정리하면 작성한 코드는 다음과 같이 동작합니다.
1. count는 1이므로 조건식이 True, 코드 블록 실행(print( ) 함수 실행, count를 2로 만들기)
2. count는 2이므로 조건식이 True, 코드 블록 실행(print( ) 함수 실행, count를 3으로 만들기) ...
6. count는 6이므로 조건식이 False, while 문 종료while 문의 동작 방식을 이해하는 것은 크게 어렵지 않을 겁니다. 다만 반복을 끝내야 할 때 조건식이 False가 되도록 코드 블록 안에 종료 조건을 제대로 만들어두는 것이 매우 중요합니다.
그렇다면 조건식이 계속 True로 유지되면 어떻게 될까요?
while 문을 사용할 때 주의해야 할 것 중 하나가 바로 무한 루프입니다. while 문의 조건식이 True로 유지되면 프로그램이 멈추지 않고 계속 실행되기 때문입니다. 다음은 count 변수에 1을 저장한 다음 while 문의 코드 블록에서 count의 값을 변경하지 않는 코드입니다. 조건식 count <= 5가 계속 True로 평가되므로 반복이 끝나지 않고 무한 실행됩니다.
코드를 실행한 뒤 반복을 멈추려면 실행 중인 프로그램을 사람이 개입해서 강제 종료해야 합니다. Ctrl + C를 누르면 프로그램을 강제로 종료할 수 있습니다.
