목차
1. while 반복문이란?
지난 시간에는 for 반복문을 이용하여 정해진 횟수만큼 반복 작업을 수행하는 방법을 배웠습니다.
하지만 실제 프로그램을 개발하다 보면 반복 횟수를 미리 알 수 없는 경우가 훨씬 많습니다.
- 사용자가 올바른 비밀번호를 입력할 때까지 계속 물어보기
- 게임이 종료될 때까지 계속 실행하기
- 서버가 중지될 때까지 요청 처리하기
- 파일 다운로드가 완료될 때까지 대기하기
이러한 상황에서는 while 반복문을 사용합니다. while 문은 특정 조건이 참(True)인 동안 계속 반복 실행되는 강력한 반복문입니다.
조건이 만족되는 동안 계속 반복해라라는 뜻입니다.
2. while 문 기본 구조
while 문은 지정한 조건이 참인 동안 코드를 계속 반복 실행하는 문법입니다.
while 조건식:
실행할 코드예제입니다.
count = 1
while count <= 5:
print(count)
count += 1실행 결과입니다.
1
2
3
4
5count <= 5가 True인 동안 반복됩니다.
count <= 53. while 문 동작 원리
위 코드를 단계별로 살펴보겠습니다.
| 단계 | 조건 | 동작 |
|---|---|---|
| 초기값 | count = 1 | 반복을 시작하기 전 기준값을 준비합니다. |
| 첫 번째 반복 | 1 <= 5 | True이므로 print(1)을 실행하고 count는 2가 됩니다. |
| 두 번째 반복 | 2 <= 5 | True이므로 print(2)를 실행하고 count는 3이 됩니다. |
| 다섯 번째 반복 후 | count = 6 | 다음 조건 검사에서 6 <= 5가 False가 됩니다. |
| 종료 | False | 반복문이 종료됩니다. |
count = 1
1 <= 5
print(1)
count = 2
2 <= 5
print(2)
count = 3
count = 6
6 <= 5
False
반복문 종료4. for 문과 while 문의 차이
| 구분 | 사용 상황 | 예시 |
|---|---|---|
| for 문 | 반복 횟수를 알고 있을 때 사용합니다. | for i in range(5): |
| while 문 | 언제 종료될지 모를 때 사용합니다. | while password != "python123": |
for 문
for i in range(5):
print(i)while 문
password = ""
while password != "python123":
password = input("비밀번호 입력: ")실제 프로그램에서는 while 문 사용 빈도가 매우 높습니다.
5. 무한 반복 Infinite Loop와 break
while 문을 사용할 때 가장 주의해야 하는 부분이 무한 반복입니다.
while True:
print("계속 실행 중")실행 결과입니다.
계속 실행 중
계속 실행 중
계속 실행 중
...영원히 반복되는 구조를 무한 반복이라고 부릅니다.
break 사용하기
무한 반복은 보통 break와 함께 사용합니다.
while True:
command = input("종료하려면 exit 입력: ")
if command == "exit":
break입력 예시입니다.
hello
test
exitexit를 입력하면 반복문이 종료됩니다.
6. continue 사용하기
continue는 현재 반복을 건너뛰고 다음 반복으로 이동합니다.
num = 0
while num < 5:
num += 1
if num == 3:
continue
print(num)결과입니다.
1
2
4
53은 출력되지 않습니다.
7. 사용자 입력 반복하기
사용자가 올바른 값을 입력할 때까지 반복하는 구조입니다.
answer = ""
while answer != "python":
answer = input("Python을 입력하세요: ")
print("정답입니다.")입력 예시입니다.
java
javascript
python결과입니다.
정답입니다.로그인 프로그램 만들기
password = ""
while password != "1234":
password = input("비밀번호 입력: ")
print("로그인 성공")입력 예시입니다.
1111
2222
1234결과입니다.
로그인 성공실제 로그인 시스템의 가장 기본적인 형태입니다.
8. while 실습 예제
숫자 맞추기 게임
secret = 7
guess = 0
while guess != secret:
guess = int(input("숫자를 입력하세요: "))
if guess < secret:
print("더 큰 숫자입니다.")
elif guess > secret:
print("더 작은 숫자입니다.")
print("정답!")입력 예시입니다.
3
10
7결과입니다.
더 큰 숫자입니다.
더 작은 숫자입니다.
정답!카운트다운 프로그램
count = 10
while count > 0:
print(count)
count -= 1
print("발사!")결과입니다.
10
9
8
...
1
발사!메뉴 선택 프로그램 만들기
실무에서 매우 자주 사용하는 패턴입니다.
while True:
print("\n===== 메뉴 =====")
print("1. 회원조회")
print("2. 회원등록")
print("3. 종료")
choice = input("선택: ")
if choice == "1":
print("회원조회 실행")
elif choice == "2":
print("회원등록 실행")
elif choice == "3":
print("프로그램 종료")
break
else:
print("잘못된 입력입니다.")이 구조는 POS 시스템, 웹 관리도구, 콘솔 프로그램 등에 널리 사용됩니다.
while와 리스트 함께 사용하기
fruits = ["사과", "바나나", "포도"]
index = 0
while index < len(fruits):
print(fruits[index])
index += 1결과입니다.
사과
바나나
포도9. while True 패턴
실무에서 가장 많이 사용하는 while 형태입니다.
while True:
작업 수행
if 종료조건:
break예제입니다.
while True:
msg = input("입력: ")
if msg == "quit":
break
print("입력값:", msg)입력 예시입니다.
hello
python
quit결과입니다.
입력값: hello
입력값: python10. 실무 활용 사례
서버는 종료될 때까지 요청을 계속 처리합니다.
IoT 장비에서 센서 데이터를 계속 읽는 구조에 사용됩니다.
보안 관제 시스템에서 로그를 지속적으로 읽고 분석할 때 활용됩니다.
게임이 종료될 때까지 update와 render를 반복합니다.
서버 프로그램
while True:
request = receive_request()
process_request(request)센서 데이터 수집
while True:
data = sensor.read()로그 모니터링
while True:
log = read_log()게임 엔진
while game_running:
update()
render()11. 자주 하는 실수와 실습 문제
초보자가 자주 하는 실수
count += 1 같은 변화 코드가 없으면 조건이 계속 True로 남아 무한 반복이 발생할 수 있습니다.
조건을 잘못 작성하면 반복문이 끝나지 않을 수 있습니다.
break를 너무 많이 사용하면 코드 가독성이 떨어집니다. 가능하면 명확한 조건식을 사용하는 것이 좋습니다.
증가값이 누락된 잘못된 코드입니다.
count = 1
while count <= 5:
print(count)결과는 무한 반복입니다.
올바른 코드입니다.
count = 1
while count <= 5:
print(count)
count += 1종료 조건 작성 실수 예시입니다.
while count >= 0:실습 문제
while 문을 사용해 1부터 20까지 출력합니다.
1부터 100까지 합계를 구합니다. 결과는 5050입니다.
비밀번호가 python123일 때까지 반복 입력받습니다.
5부터 1까지 카운트다운을 출력합니다.
사용자가 exit를 입력할 때까지 계속 입력받고 출력합니다.
문제 2 결과입니다.
5050문제 5 예시입니다.
입력: hello
출력: hello
입력: python
출력: python
입력: exit
프로그램 종료12. 핵심 정리와 다음 편 예고
이번 시간에는 Python의 while 반복문을 배웠습니다.
- while은 조건이 참인 동안 반복합니다.
- 반복 횟수를 모를 때 사용합니다.
- 무한 반복은 while True로 구현합니다.
- break는 반복을 종료합니다.
- continue는 현재 반복을 건너뜁니다.
- 로그인, 서버, 게임, 보안 시스템 등 실무에서 매우 많이 사용됩니다.
특히 while 문은 사용자 입력 처리와 서버 프로그램의 핵심 구조를 이해하는 데 반드시 필요한 문법입니다.
for 문과 while 문을 모두 자유롭게 사용할 수 있다면 Python 프로그래밍의 기초를 상당 부분 익힌 것입니다.
- 함수란 무엇인가?
- def 문법 이해하기
- 매개변수 Parameter
- 반환값 Return
- 함수와 변수의 관계
- 실무 함수 설계 방법
- 계산기 함수 만들기 프로젝트
