while 반복문은 프로그래밍에서 특정 조건이 참인 동안 코드 블록을 반복적으로 실행하는 제어 구조입니다. 조건이 거짓이 될 때까지 계속해서 반복되며, 이는 마치 "~하는 동안 계속 반복하라"는 의미를 가집니다.
이 반복문은 반복 횟수가 명확하지 않을 때 특히 유용하며, 사용자 입력을 기다리거나 파일을 읽는 등의 작업에서 자주 활용됩니다. 예를 들어, 사용자가 '종료'를 입력할 때까지 프로그램을 계속 실행하거나, 파일의 끝에 도달할 때까지 데이터를 읽는 등의 상황에서 while 반복문이 효과적입니다.
기본 사용법
while 반복문의 기본 사용법에서 가장 중요한 특징은 조건식이 반드시 필요하다는 점입니다. for 반복문이 주로 정해진 횟수나 시퀀스를 기반으로 반복하는 것과 달리, while 반복문은 특정 조건이 참인 동안 계속해서 실행됩니다.
이러한 특성 때문에 while 반복문을 사용할 때는 반드시 종료 조건을 명확히 설정해야 하며, 조건이 거짓이 되도록 하는 로직이 반복문 내부에 포함되어야 합니다. 그렇지 않으면 프로그램이 무한 루프에 빠질 수 있습니다.
while 조건:
# 반복할 코드
# 조건이 참인 동안 계속 실행됨
Python
복사
# 조건: count가 5 이하인지 확인합니다
# 반복 코드: 현재 숫자를 출력하고 count를 1씩 증가시킵니다
# 종료 조건: count가 6이 되면 조건이 거짓이 되어 반복문이 종료됩니다
count = 1
while count <= 5:
print(f"현재 숫자: {count}")
count += 1
# 실행결과
'''
현재 숫자: 1
현재 숫자: 2
현재 숫자: 3
현재 숫자: 4
현재 숫자: 5
'''
Python
복사
연습만이 성장의 지름길! 
코딩은 직접 해봐야 합니다! colab으로 간단히 연습해 보세요. 프로젝트 전체가 아닌, 작은 코드 조각들을 하나씩 연습하는 것입니다. 이렇게 연습한 조각들이 모여 성공적인 프로젝트가 완성됩니다.
무한 루프 탈출하기
while 반복문에서 무한 루프에 빠졌을 때는 크게 세 가지 방법으로 탈출할 수 있습니다. 첫째, break 문을 사용하여 즉시 반복문을 종료하는 방법, 둘째, 반복문의 조건을 False로 변경하여 종료하는 방법, 셋째, Ctrl+C 키를 눌러 프로그램을 강제 종료하는 방법이 있습니다.
1. break 문 사용
break 문을 사용하면 특정 조건이 만족될 때 반복문을 즉시 종료할 수 있습니다.
while True: # 무한 루프
user_input = input("계속하시겠습니까? (y/n): ")
if user_input == 'n':
break # 사용자가 'n'을 입력하면 반복문 종료
print("계속 실행중...")
Python
복사
2. 조건문 사용
반복문 내부에서 조건을 변경하여 루프를 종료할 수 있습니다.
is_running = True
while is_running:
user_input = input("계속하시겠습니까? (y/n): ")
if user_input == 'n':
is_running = False # 조건을 False로 변경하여 루프 종료
print("계속 실행중...")
Python
복사
3. Ctrl+C 사용
프로그램 실행 중에 Ctrl+C를 누르면 KeyboardInterrupt 예외가 발생하며 프로그램이 강제 종료됩니다.
다양한 예시
기본적인 숫자 세기
가장 간단한 while 반복문 예시로, 숫자를 1부터 차례대로 세는 방법입니다.
i = 1
while i <= 5:
print(i)
i += 1
# 실행결과
'''
1
2
3
4
5
'''
Python
복사
합계 계산하기
while 반복문을 사용하여 1부터 n까지의 합을 계산하는 예시입니다.
n = 10
sum = 0
i = 1
while i <= n:
sum += i
i += 1
print(f"1부터 {n}까지의 합: {sum}")
# 실행결과
'''
1부터 10까지의 합: 55
'''
Python
복사
사용자 입력 처리하기
사용자로부터 올바른 입력을 받을 때까지 반복하는 예시입니다.
while True:
age = input("나이를 입력하세요 (1-120): ")
if age.isdigit() and 1 <= int(age) <= 120:
print(f"입력된 나이: {age}")
break
print("올바른 나이를 입력해주세요.")
# 실행결과 예시
'''
나이를 입력하세요 (1-120): 0
올바른 나이를 입력해주세요.
나이를 입력하세요 (1-120): 25
입력된 나이: 25
'''
Python
복사
게임 루프 만들기
간단한 숫자 맞추기 게임을 구현한 예시입니다.
import random
target = random.randint(1, 100)
attempts = 0
while True:
guess = int(input("1부터 100 사이의 숫자를 맞춰보세요: "))
attempts += 1
if guess < target:
print("더 큰 숫자입니다!")
elif guess > target:
print("더 작은 숫자입니다!")
else:
print(f"정답입니다! {attempts}번만에 맞추셨습니다.")
break
# 실행결과 예시
'''
1부터 100 사이의 숫자를 맞춰보세요: 50
더 작은 숫자입니다!
1부터 100 사이의 숫자를 맞춰보세요: 25
더 큰 숫자입니다!
1부터 100 사이의 숫자를 맞춰보세요: 37
정답입니다! 3번만에 맞추셨습니다.
'''
Python
복사
데이터 처리하기
리스트의 모든 요소를 처리하는 예시입니다.
numbers = [1, 2, 3, 4, 5]
index = 0
while index < len(numbers):
print(f"현재 처리중인 숫자: {numbers[index]}")
index += 1
# 실행결과
'''
현재 처리중인 숫자: 1
현재 처리중인 숫자: 2
현재 처리중인 숫자: 3
현재 처리중인 숫자: 4
현재 처리중인 숫자: 5
'''
Python
복사
조건부 실행
특정 조건이 만족될 때까지 반복하는 예시입니다.
total = 0
while total < 100:
num = int(input("숫자를 입력하세요: "))
total += num
print(f"현재 합계: {total}")
print("합계가 100을 넘었습니다.")
# 실행결과
'''
숫자를 입력하세요: 30
현재 합계: 30
숫자를 입력하세요: 40
현재 합계: 70
숫자를 입력하세요: 35
현재 합계: 105
합계가 100을 넘었습니다.
'''
Python
복사