파이썬 교육 챕터 22 반복문 제어 Break Continue

반복문 제어: break와 continue (반복문 중단 및 건너뛰기)

1. 서론: 반복의 흐름을 자유자재로 제어하다

이전 챕터에서 우리는 for 문과 while 문을 사용하여 코드를 반복 실행하는 방법을 배웠습니다. for 문은 주로 정해진 횟수만큼 반복하거나 컬렉션의 요소들을 순회할 때 사용되고, while 문은 특정 조건이 True인 동안 반복할 때 사용됩니다. 이 두 반복문은 대부분의 반복 작업을 처리할 수 있지만, 때로는 반복문의 전체 흐름을 중간에 멈추거나, 특정 조건에 해당하는 반복만 건너뛰고 다음 반복으로 넘어가야 하는 경우가 발생합니다. 예를 들어, 리스트에서 원하는 값을 찾으면 더 이상 검색할 필요 없이 반복을 중단하거나, 특정 조건에 맞지 않는 데이터는 처리하지 않고 다음 데이터로 넘어가야 할 때가 그렇습니다. 이때 필요한 것이 바로 breakcontinue 문입니다. 이 두 문법은 반복문의 흐름을 더욱 정교하게 제어할 수 있도록 돕습니다. 이 챕터에서는 breakcontinue 문의 사용법과 그 중요성, 그리고 이들을 효과적으로 활용하는 방법에 대해 깊이 있게 알아보겠습니다. 반복문의 흐름을 자유자재로 제어하는 능력은 여러분의 파이썬 코드를 더욱 효율적이고 유연하게 만들 것입니다.

2. break 문: 반복문 즉시 종료

break 문은 현재 실행 중인 반복문(가장 가까운 for 또는 while 문)을 즉시 종료하고, 반복문 다음의 코드로 프로그램의 제어를 이동시킵니다. break 문이 실행되면 반복문은 더 이상 반복되지 않습니다.

2.1. for 문에서 break 사용 예시

# 리스트에서 특정 숫자 찾기
numbers = [1, 3, 5, 7, 9, 11, 13, 15]
target = 9
found = False

for num in numbers:
    if num == target:
        print(f"{target}을(를) 찾았습니다!")
        found = True
        break # 9를 찾았으므로 더 이상 반복할 필요가 없습니다.
    print(f"현재 숫자: {num}")

if not found:
    print(f"{target}을(를) 찾지 못했습니다.")

# 출력:
# 현재 숫자: 1
# 현재 숫자: 3
# 현재 숫자: 5
# 현재 숫자: 7
# 9을(를) 찾았습니다!

위 예시에서 target인 9를 찾으면 break 문이 실행되어 for 루프가 즉시 종료됩니다. 9 이후의 숫자들(11, 13, 15)은 더 이상 검사되지 않습니다.

2.2. while 문에서 break 사용 예시

while 문 챕터에서 무한 루프를 제어할 때 break를 사용했던 것을 기억할 것입니다. break는 사용자 입력에 따라 반복을 종료하는 등의 상황에서 매우 유용합니다.

while True: # 무한 루프
    user_input = input("'종료'를 입력하면 프로그램이 끝납니다: ")
    if user_input == "종료":
        print("프로그램을 종료합니다.")
        break # '종료'가 입력되면 반복문 종료
    else:
        print(f"입력: {user_input}")

print("프로그램이 완전히 종료되었습니다.")

# 사용자가 '종료'를 입력할 때까지 계속 반복됩니다.

2.3. 중첩 반복문에서의 break

break 문은 자신이 속한 가장 안쪽의 반복문만 종료시킵니다. 바깥쪽 반복문에는 영향을 주지 않습니다.

for i in range(1, 4):
    for j in range(1, 4):
        if j == 2:
            print(f"안쪽 루프에서 break (i={i}, j={j})")
            break # 안쪽 for 루프만 종료
        print(f"i={i}, j={j}")

# 출력:
# i=1, j=1
# 안쪽 루프에서 break (i=1, j=2)
# i=2, j=1
# 안쪽 루프에서 break (i=2, j=2)
# i=3, j=1
# 안쪽 루프에서 break (i=3, j=2)

3. continue 문: 현재 반복 건너뛰기

continue 문은 현재 실행 중인 반복(iteration)의 나머지 부분을 건너뛰고, 반복문의 다음 반복으로 즉시 넘어갑니다. break처럼 반복문 자체를 종료시키는 것이 아니라, 현재의 반복만 건너뛰는 것입니다.

3.1. for 문에서 continue 사용 예시

# 짝수만 출력하기
for i in range(1, 11):
    if i % 2 != 0: # 홀수이면
        continue # 현재 반복을 건너뛰고 다음 반복으로
    print(i, end=" ") # 출력: 2 4 6 8 10
print()

# 문자열에서 특정 문자 제외하고 출력
text = "Python is awesome!"
result = ""
for char in text:
    if char in 'aeiouAEIOU': # 모음이면
        continue # 현재 문자를 건너뛰고 다음 문자로
    result += char

print(result) # 출력: Pythn s wsm!

3.2. while 문에서 continue 사용 예시

count = 0
while count < 10:
    count += 1 # continue 전에 count를 증가시켜 무한 루프 방지
    if count % 3 == 0: # 3의 배수이면
        continue # 현재 반복을 건너뛰고 다음 반복으로
    print(count, end=" ") # 출력: 1 2 4 5 7 8 10
print()

주의: while 문에서 continue를 사용할 때는 조건식을 False로 만들 수 있는 코드가 continue 문 이전에 위치해야 합니다. 그렇지 않으면 continue가 계속 실행되어 무한 루프에 빠질 수 있습니다.

# 무한 루프 발생 가능성 (절대 실행하지 마세요!)
# count = 0
# while count < 10:
#     if count % 3 == 0:
#         continue # count가 증가하지 않아 무한 루프
#     count += 1
#     print(count)

4. breakcontinue의 차이점 요약

특징 break continue
동작 현재 반복문을 완전히 종료 현재 반복(iteration)의 나머지 부분을 건너뛰고 다음 반복으로 진행
영향 반복문 자체를 벗어남 반복문은 계속 실행되지만, 현재 반복만 건너뜀
사용처 특정 조건을 만족하면 더 이상 반복할 필요가 없을 때 특정 조건을 만족하는 경우만 건너뛰고 싶을 때

5. breakcontinue 사용 시 주의사항

  • 과도한 사용 자제: breakcontinue는 코드의 흐름을 복잡하게 만들 수 있습니다. 너무 자주 사용하면 코드의 가독성이 떨어지고 디버깅이 어려워질 수 있으므로, 꼭 필요한 경우에만 신중하게 사용해야 합니다. 때로는 if-else 문이나 함수를 사용하여 코드를 더 명확하게 만들 수 있습니다.
  • while 문에서의 continue: 위에서 언급했듯이, while 문에서 continue를 사용할 때는 무한 루프에 빠지지 않도록 조건식을 변경하는 코드가 continue 이전에 위치하는지 반드시 확인해야 합니다.

6. 결론: 반복문의 정교한 제어

이 챕터를 통해 여러분은 파이썬 breakcontinue 문의 사용법과 그 중요성을 학습했습니다. break 문을 사용하여 반복문을 특정 조건에서 즉시 종료하는 방법과, continue 문을 사용하여 현재 반복을 건너뛰고 다음 반복으로 넘어가는 방법을 배웠습니다. 또한, 이 두 문법의 차이점과 중첩 반복문에서의 동작, 그리고 while 문에서 continue 사용 시 주의사항까지 살펴보았습니다.

breakcontinue는 반복문의 흐름을 더욱 정교하게 제어할 수 있도록 돕는 강력한 도구입니다. 이들을 적절히 활용하면 코드를 더 효율적이고 간결하게 만들 수 있습니다. 하지만 코드의 가독성을 해치지 않도록 신중하게 사용하는 것이 중요합니다.

이제 여러분은 파이썬의 핵심적인 제어문인 조건문과 반복문을 자유자재로 다룰 수 있게 되었습니다. 다음 챕터에서는 for 문 안에 for 문이 들어가는 ‘중첩 반복문(Nested Loop)’에 대해 더 깊이 있게 탐구할 것입니다. 중첩 반복문은 복잡한 패턴이나 다차원 데이터를 처리하는 데 필수적이므로, 오늘 배운 breakcontinue를 활용하여 다양한 반복 시나리오를 직접 구현해 보면서, 여러분의 파이썬 실력을 더욱 단단하게 다지세요!

파이썬 교육 챕터 22 반복문 제어 Break Continue