안녕하세요! 지난 시간에는 if, elif, else 조건문과 비교/논리 연산자를 활용하여 프로그램이 다양한 상황을 판단하고 다른 동작을 수행하도록 만드는 방법을 배웠습니다. 이제 프로그램이 "결정"을 내릴 수 있게 되었죠!
이번 시간에는 프로그램의 흐름을 제어하는 또 다른 중요한 도구인 **반복문(Loop Statement)**에 대해 알아보겠습니다. 그중에서도 while 반복문은 특정 조건이 참(True)인 동안 코드를 계속해서 반복 실행할 때 사용됩니다.
마치 "만약 이 조건이 맞으면 계속해라, 아닐 때까지"라고 컴퓨터에게 지시하는 것과 같습니다. 그럼, while 반복문의 세계로 들어가 볼까요?
Part 1: while 반복문 기본 사용법
while 반복문은 조건이 True인 한, 그 아래에 들여쓰기 된 코드 블록을 계속해서 실행합니다.
1. 기본 형식
while 조건:
# 조건이 True인 동안 반복 실행할 코드
# 이 부분은 들여쓰기(Indentation) 필수!
- 조건: True 또는 False로 평가될 수 있는 표현식입니다. 이 조건이 True인 동안 반복문이 계속 실행됩니다.
- : (콜론): while 문 뒤에는 반드시 콜론을 붙여야 합니다.
- 들여쓰기(Indentation): while 문 아래에 실행될 코드는 반드시 들여쓰기를 해야 합니다.
가장 중요한 점: 반복문이 무한히 실행되는 것을 막기 위해, 반복문 내부에서 조건이 언젠가는 False가 되도록 만들어야 합니다. 그렇지 않으면 프로그램이 끝없이 반복되는 **무한 루프(Infinite Loop)**에 빠질 수 있습니다.
예시: 1부터 5까지 출력하기
# 파일 이름: while_count.py
count = 1 # 초기 값 설정
while count <= 5: # count가 5보다 작거나 같은 동안 반복
print(f"현재 숫자는 {count}입니다.")
count = count + 1 # count 값을 1씩 증가 (이 부분이 중요! 조건이 False가 되도록 함)
print("반복이 종료되었습니다.")
- count = 1: 반복을 시작할 초기 값을 설정합니다.
- while count <= 5: count가 5보다 작거나 같은 동안 반복하라는 조건입니다.
- count = count + 1 (또는 count += 1): count 값을 1씩 증가시킵니다. 이 문장이 없으면 count는 계속 1이므로 무한 루프에 빠지게 됩니다. count가 6이 되는 순간 count <= 5 조건은 False가 되어 반복문이 종료됩니다.
# 파일 이름: while_count.py
count = 1 # 초기 값 설정
while count <= 5: # count가 5보다 작거나 같은 동안 반복
print(f"현재 숫자는 {count}입니다.")
count = count + 1 # count 값을 1씩 증가 (이 부분이 중요! 조건이 False가 되도록 함)
print("반복이 종료되었습니다.")
[VS Code 터미널 출력]

Part 2: 무한 루프와 탈출 (무한 반복 주의!)
while 문의 조건이 항상 True로 유지될 경우, 프로그램은 끝없이 반복되는 **무한 루프(Infinite Loop)**에 빠지게 됩니다. 이는 대부분 의도치 않은 상황이며, 프로그램이 멈추지 않고 계속 실행될 것입니다.
1. 무한 루프의 예시
# 파일 이름: infinite_loop.py
# 이 코드는 무한 루프에 빠집니다!
# 실행 시 주의하세요.
# count = 0
# while True: # 조건이 항상 True
# print("저는 계속 반복됩니다...")
# count += 1
# if count > 5: # 이 조건이 없으면 영원히 반복
# break # 임시로 5번 반복 후 탈출하도록 추가 (실제 무한 루프 예시를 위해 주석 처리)
- 위 코드에서 while True:는 항상 참이기 때문에, break 문이 없으면 영원히 "저는 계속 반복됩니다..."를 출력하게 됩니다.
2. 무한 루프에서 강제 종료하는 방법
만약 실수로 무한 루프에 빠진 프로그램을 실행했다면, 터미널에서 Ctrl + C (컨트롤 + C) 키를 눌러 강제로 프로그램을 종료할 수 있습니다.
Part 3: while 문 활용 예제
while 반복문은 사용자 입력 유효성 검사, 특정 조건이 만족될 때까지 대기하는 등의 상황에서 매우 유용하게 사용됩니다.
1. 예제: 올바른 비밀번호 입력받기
사용자에게 비밀번호를 입력받는데, 올바른 비밀번호를 입력할 때까지 계속 다시 입력받는 프로그램입니다.
# 파일 이름: while_password_check.py
correct_password = "python123"
entered_password = "" # 초기값은 비어있는 문자열
while entered_password != correct_password: # 입력된 비밀번호가 정답과 다른 동안 반복
entered_password = input("비밀번호를 입력하세요: ")
if entered_password == correct_password:
print("로그인 성공!")
else:
print("비밀번호가 틀렸습니다. 다시 시도하세요.")
print("프로그램을 계속 진행합니다.")
- entered_password != correct_password: 입력된 비밀번호가 correct_password와 다르면 True가 되어 반복합니다. 같아지면 False가 되어 반복문이 종료됩니다.
# 파일 이름: while_password_check.py
correct_password = "python123"
entered_password = "" # 초기값은 비어있는 문자열
while entered_password != correct_password: # 입력된 비밀번호가 정답과 다른 동안 반복
entered_password = input("비밀번호를 입력하세요: ")
if entered_password == correct_password:
print("로그인 성공!")
else:
print("비밀번호가 틀렸습니다. 다시 시도하세요.")
print("프로그램을 계속 진행합니다.")
[VS Code 터미널 출력 (사용자 입력 포함)]

(괄호 [] 안의 내용은 사용자가 직접 입력하는 부분입니다.)
마무리하며
이번 시간에는 파이썬에서 특정 조건이 참인 동안 코드를 반복 실행하는 while 반복문에 대해 알아보았습니다. 초기 값, 조건, 그리고 조건 변경 로직의 세 가지 요소가 반복문의 동작을 결정하며, 특히 무한 루프에 빠지지 않도록 조건을 잘 관리하는 것이 중요합니다.
while 문은 사용자 입력을 기다리거나, 특정 상태가 될 때까지 작업을 반복하는 등 다양한 시나리오에서 유용하게 사용될 수 있습니다.
다음 포스팅에서는 while 문과 함께 파이썬의 양대산맥을 이루는 또 다른 중요한 반복문인 for 반복문에 대해 자세히 알아보겠습니다.
궁금한 점이 있다면 언제든지 질문해주세요! 다음 포스팅에서 만나요!
'Python' 카테고리의 다른 글
2-5. break, continue의 사용법 (0) | 2025.06.22 |
---|---|
2-4. for 반복문과 range() (0) | 2025.06.22 |
2-2. 비교/논리 연산자 활용 조건 판단 (0) | 2025.06.21 |
2-1. if, elif, else 조건문 (0) | 2025.06.20 |
1-8. 파이썬에서 오류가 나는 이유와 에러 메시지 읽기 (0) | 2025.06.20 |