더북(TheBook)

이런 식으로 동작하는 이유는 루프를 사용해 검색을 수행할 경우, 루프 바로 뒤에 있는 else 블록이 그와 같이 동작해야 유용하기 때문이다. 예를 들어 두 수가 서로소(두 수의 공약수가 1밖에 없음)인지 알아보고 싶다고 하자. 이런 경우에는 공약수일 가능성이 있는 모든 수를 이터레이션하면서 두 수를 나눌 수 있는지 검사하면 된다. 모든 가능성을 검사하고 나면 루프가 끝난다. 루프가 break를 만나지 않으면 두 수가 서로소이므로 else 블록이 실행된다.

a = 4
b = 9

for i in range(2, min(a, b) + 1):
    print('검사 중', i)
    if a % i == 0 and b % i == 0:
        print('서로소 아님')
        break
else:
    print('서로소')

>>>
검사 중 2
검사 중 3
검사 중 4
서로소
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.