9.1 조건부 루프
루프 for
는 우리가 루프의 명령 블록을 몇 번 실행할지 정확히 알고 있을 때 적합해. 하지만 항상 그런 상황은 아니야. 명령 블록을 어떤 조건(규칙)이 참일 때까지 실행해야 하는 경우도 있어.
이를 위해 Python 언어에는 루프 while
이 있어. 이 루프의 일반적인 형태는 for 루프보다 더 간단해:
while 조건:
명령1
명령2
명령N
루프는 조건이 참일 동안 계속 실행돼.
중요! 루프가 무한히 실행되지 않도록 명령 블록 안에서 조건에 영향을 미치는 무언가가 있어야 해. 이 조건이 언젠가 거짓이 되어 루프가 종료될 수 있도록 말이야.
예시:
예시 | 설명 |
---|---|
|
루프는 화면에 숫자 0 1 2 3 4를 출력할 거야 |
while 루프에서는 두 가지가 계속해서 실행돼:
- 조건이 확인돼.
- 명령 블록이 실행돼.
조건이 참이면 명령 블록이 실행돼. 조건이 거짓이라면 (심지어 명령 블록이 한 번도 실행되지 않았더라도) 루프는 종료돼.
while 루프와 사용자로부터 알 수 없는 양의 데이터를 입력 받는 예시:
예시 | 설명 |
---|---|
|
루프는 사용자가 'exit'을 입력할 때까지 모든 데이터를 화면에 출력하고, 이를 출력한 후 종료돼. |
9.2 break 문
Python에서 break 문은 while 루프나 for 루프의 실행을 즉시 중지하는 데 사용돼. 이 문은 조건에 의해 루프가 정상적으로 종료되기 전에도 루프를 종료해야 할 때 매우 유용해.
break
은 프로그램 실행 흐름을 보다 유연하게 관리할 수 있게 해주고, 실행 중에 동적으로 변하는 조건에 반응할 수 있게 해줘.
주요 사용법:
for num in range(10):
if num == 5:
break # num이 5에 도달하면 루프가 중단돼
print(num)
이 예제에서 루프는 0부터 4까지의 숫자를 출력해. num이 5에 도달하면, break
로 인해 루프가 중단돼.
무한 루프에서의 사용:
while True:
response = input("종료하려면 'exit'을 입력하세요: ")
if response == 'exit':
break
여기서 break
는 사용자가 'exit'을 입력하면 무한 루프에서 빠져나오는 데 사용돼.
break
는 또한 중첩 루프의 실행을 중단하거나, 예외 상황을 처리할 때, 다중 스레드 또는 네트워크 애플리케이션에서 프로세스를 중단할 때 자주 사용돼.
예시로, 검색이나 정렬 작업에서 원하는 요소를 찾은 후에 루프를 계속 실행할 필요가 없을 때 사용돼:
elements = [1, 2, 3, -99, 5]
# 첫 번째 음수 요소 찾기
for element in elements:
if element < 0:
print("음수 요소 발견: ", element)
break
최고의 실천 방법은 프로그램의 논리를 복잡하게 만들지 않고 쉽게 이해할 수 있도록 break
를 현명하게 사용하는 거야. 루프를 종료하는 이유가 명확하지 않을 경우, 이를 주석으로 설명하는 게 좋은 습관이야.
break
의 사용은 정당하고 적절해야 해. 예를 들어 코드의 가독성과 효율성을 향상시키기 위해서 말이야. 이 문을 효과적으로 사용하면 특히 계산이 많은 알고리즘에서 성능을 크게 향상시킬 수 있어.
9.3 continue 문
continue 문은 Python에서 루프의 실행 흐름을 제어하는 강력한 도구야. 현재 반복의 남은 코드를 건너뛰고 다음 반복으로 넘어가게 해줘
. 이 문은 특정 조건을 건너뛰고 전체 루프를 중단하지 않고 for
나 while
루프에서 자주 사용돼.
continue 문 사용의 기본
continue가 단순 루프에서 어떻게 작동하는지 보자:
for i in range(10):
if i % 2 == 0:
continue
print(i)
이 예제에서는 루프가 1에서 9까지의 홀수만 출력해. i
가 짝수일 때마다(2로 나누어 떨어질 때) continue
가 작동하고, print()
함수 호출을 건너뛰고 다음 반복으로 넘어가.
continue 실사용 예시
데이터 필터링: continue
를 사용하여 루프 내에서 보다 복잡한 작업을 수행하기 전에 데이터를 미리 필터링할 수 있어.
data = ["apple", "banana", "", "cherry", "date"]
for fruit in data:
if not fruit:
continue # 빈 문자열 건너뛰기
print(fruit.capitalize())
특정 조건 건너뛰기: 복잡한 조건을 기반으로 특정 요소를 건너뛰어야 하는 상황에서 특히 유용해.
scores = [92, 85, 99, 78, 82, 100, 67, 88]
for score in scores:
if score < 80:
continue # 낮은 점수 건너뛰기
print("축하합니다, 당신의 점수는: ", score)
Python에서 continue
문은 루프에서 불필요한 요소를 건너뛰고 코드를 더 간결하고 읽기 쉽게 만드는 우아한 방법을 제공해. 너무 많은 continue
의 사용은 루프가 어떤 데이터를 처리하는지 이해하기 어렵게 만들 수 있어. 특히 조건이 많은 복잡한 루프에서는 적절한 균형을 유지하자.
GO TO FULL VERSION