Python continue 문 사용법 완전 정리 | 루프 제어 마스터하기

1. continue문 기본 이해

continue문은 Python의 루프 구조 내에서 특정 조건을 만족할 때, 해당 루프의 현재 반복을 건너뛰고 다음 반복으로 진행하기 위해 사용됩니다. 이는 예를 들어 특정 요소를 처리에서 제외하고 싶을 때 유용합니다.

1.1 continue의 기본 구문

continue문은 for 루프 또는 while 루프 안에서 사용됩니다. 기본 구문은 다음과 같습니다.
for i in range(5):
    if i == 2:
        continue
    print(i)
이 코드에서는 i가 2일 때 continue가 실행되고, print문은 건너뛰어집니다. 따라서 출력은 0, 1, 3, 4가 됩니다.

2. for 루프에서의 continue 사용법

for루프는 반복 처리를 수행할 때 자주 사용됩니다. 이 안에서 continue를 사용하면 특정 조건에서 해당 반복의 나머지 처리를 건너뛸 수 있습니다.

2.1 기본적인 for 루프 예시

아래 코드에서는 리스트 내의 숫자를 순차적으로 처리하고, 특정 조건에 부합하는 경우 해당 처리를 건너뛰게 됩니다.
numbers = [1, 2, 3, 4, 5]
for num in numbers:
    if num % 2 == 0:
        continue
    print(num)
이 코드에서는 짝수인 숫자가 continue에 의해 건너뛰어지므로, 출력은 1, 3, 5가 됩니다.

2.2 중첩된 for 루프에서의 continue

중첩된 루프 안에서 continue를 사용할 경우, continue는 가장 안쪽 루프에만 영향을 미칩니다. 예를 들어:
for i in range(3):
    for j in range(3):
        if j == 1:
            continue
        print(i, j)
이 코드에서는 안쪽 루프에서 j가 1인 경우 처리를 건너뛰고, print(i, j)의 출력은 (0, 0), (0, 2), (1, 0), (1, 2), (2, 0), (2, 2)가 됩니다.

3. while 루프에서의 continue 사용법

while 루프에서도 마찬가지로 continue를 사용하여 현재 반복을 건너뛰고 다음 반복으로 진행할 수 있습니다.

3.1 기본적인 while 루프 예시

아래 코드는 사용자가 숫자를 입력하도록 하고, 특정 조건에서 continue를 사용하여 처리를 건너뛰게 합니다.
counter = 0
while counter < 5:
    counter += 1
    if counter == 3:
        continue
    print(counter)
이 코드에서는 counter가 3일 때 continue가 실행되고, print 문은 건너뛰어집니다. 따라서 출력은 1, 2, 4, 5가 됩니다.

3.2 while 루프에서의 입력 검증

while 루프에서 사용자 입력을 검증할 때도 continue가 유용합니다. 예를 들어, 빈 입력을 건너뛰기 위해 continue를 사용할 수 있습니다:
while True:
    text = input("Enter a number (or 'exit' ) to quit: ")
    if text == 'exit':
        break
    if text == '':
        print("Empty input, please try again.")
        continue
    print(f"You entered: {text}")
이 코드에서는 사용자가 빈 입력을 했을 경우 continue로 처리를 건너뛰고, 다시 입력을 요청합니다.

4. continueelse의 조합

Python에서는, for 루프와 while 루프에 else 블록을 결합할 수 있습니다. 이 else 블록은 continue가 실행된 경우에도 적용되므로, 보다 복잡한 흐름 제어를 구현할 수 있습니다.

4.1 else 블록 예시

다음 예에서는 else 블록과 continue를 결합하여, 루프가 끝까지 실행된 경우의 처리를 수행합니다.
for i in range(3):
    for j in range(3):
        if j == 1:
            continue
        print(i, j)
    else:
        print("Inner loop finished.")
이 코드에서는, 내부 루프가 continue에 의해 중간에 건너뛰어졌더라도, else 블록의”Inner loop finished.”가 표시됩니다.

5. continuebreak의 차이

continuebreak는 모두 루프 흐름을 제어하지만, 용도가 다릅니다.

5.1 continue의 동작

continue는 현재 반복을 건너뛰고 다음 반복으로 진행합니다. 루프 전체를 종료하지는 않습니다.

5.2 break의 동작

반면, break는 루프 전체를 종료하고 루프 밖으로 나갑니다. 아래 예시에서 차이를 살펴보겠습니다:
for i in range(5):
    if i == 3:
        break
    print(i)
이 코드에서는 i가 3일 때 break가 실행되어 루프 전체가 종료됩니다. 출력은 0, 1, 2가 됩니다.

5.3 어느 것을 사용해야 할까

continue는 특정 조건에서 처리를 건너뛰는 데 사용하고, break는 특정 조건에서 루프를 완전히 종료할 때 사용합니다. 용도에 따라 적절히 구분해서 사용합시다.

6. 실용적인 응용

continue 문은 실제 프로그래밍에서 효율적인 코드를 작성하거나 특정 상황을 피하기 위해 사용됩니다.

6.1 데이터 필터링

예를 들어, 데이터셋에서 특정 값을 제외할 때continue를 사용할 수 있습니다.
data = [1, -1, 2, -2, 3, -3]
for value in data:
    if value < 0:
        continue
    print(value)
이 코드에서는 음수 값이 건너뛰어지고, 출력은1, 2, 3이 됩니다.

7. 흔히 발생하는 실수와 트러블슈팅

continue를 사용할 때 흔히 발생하는 실수와 그 해결책에 대해 설명합니다.

7.1 들여쓰기 실수

continue를 사용할 때 가장 일반적인 실수는 들여쓰기입니다. continue가 의도하지 않은 위치에 들여쓰기 되어 있으면, 예상치 못한 동작을 일으킬 가능성이 있습니다.

7.2 무한 루프의 위험성

while 루프에서 continue를 사용할 경우, 루프 진행을 확실히 관리해야 합니다. 예를 들어, 카운터 업데이트를 continue 앞에 하지 않으면 무한 루프가 될 가능성이 있습니다.
counter = 0
while counter < 5:
    if counter == 3:
        continue  # 무한 루프가 된다
    counter += 1
    print(counter)
이 코드에서는, counter의 업데이트가 continue 뒤에 이루어지지 않기 때문에, 무한 루프가 됩니다.
侍エンジニア塾