Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 while 루프, 작동 원리부터 실전 예제까지 완벽 정리

while 문은 파이썬을 비롯한 대부분의 프로그래밍 언어에서 가장 널리 사용되는 반복문(loop) 중 하나입니다. 조건이 참인 동안 같은 코드 블록을 계속 실행해야 할 때 매우 유용하며, 기본적인 사용 형식은 다음과 같습니다.

while 문의 기본 구조

while 조건식:
    실행할 문장1
    실행할 문장2
    ...

콜론(:) 뒤에 들여쓰기로 작성된 코드 블록은 조건식이 참(True)으로 평가되는 동안 계속해서 반복 실행됩니다. 파이썬은 중괄호 {} 대신 들여쓰기로 코드 블록의 범위를 구분하기 때문에, while 문 아래 문장들의 들여쓰기를 정확히 맞추는 것이 중요합니다.

무한 루프를 피하는 방법

주의할 점은, 블록 내부에 언젠가 조건식을 거짓(False)으로 만들어 줄 장치가 반드시 포함되어야 한다는 것입니다. 조건이 항상 참으로 유지되면 프로그램은 끝나지 않는 무한 루프(infinite loop)에 빠지게 되며, 의도하지 않은 경우 시스템 자원을 낭비하거나 프로그램이 멈춘 것처럼 보일 수 있습니다.

카운터 변수를 활용한 while 루프

while 루프를 가장 간단하고 확실하게 종료시키는 방법은 카운트 기반 반복(counted loop)을 만드는 것입니다. 반복 본문이 시작되기 전에 카운터 변수를 초기화하고, 매 반복마다 그 값을 증가시켜 원하는 횟수에 도달하면 조건이 거짓이 되도록 구성합니다.

x = 0
while x < 10:
    x = x + 1
    print(x)

위 예제의 실행 흐름을 살펴보면 다음과 같습니다.

① 변수 x를 0으로 초기화합니다.
② 조건식 x < 10을 검사하여 참이면 블록을 실행합니다.
③ 블록 안에서 x를 1씩 증가시키고 현재 값을 출력합니다.
x가 10이 되는 순간 조건식이 거짓이 되어 루프가 종료됩니다.

결과적으로 이 코드는 1부터 10까지의 숫자를 차례대로 출력합니다.

참고: break 문으로 루프 강제 종료하기

조건식 외에도 break 문을 사용하면 특정 상황에서 루프를 즉시 탈출할 수 있습니다.

x = 0
while True:  # 조건이 항상 참인 무한 루프
    x += 1
    if x == 5:
        break  # x가 5가 되면 루프 종료
    print(x)

이처럼 while 루프는 조건 검사, 들여쓰기 블록, 종료 조건이라는 세 가지 요소만 정확히 이해하면 누구나 쉽게 활용할 수 있습니다. 반복 횟수가 정해져 있지 않거나 사용자 입력 등 외부 상태에 따라 반복 여부를 결정해야 하는 상황에서 특히 강력한 도구입니다.