while True: x = 1.0 + 2.0*random.random() y = 1.0 + 2.0*random.random() if x*x + y*y <= 1.0: break
단위 원판의 면적은 𝜋이고 정사각형의 면적은 4
이므로 루프가 반복될 횟수는 4/𝜋(대략 1.27
)라고 예상할 수 있다.
중간에 탈출하는 루프에 대해서는 전문가들의 의견이 분분하다. 잘못 사용하면 break
문은 루프의 제어 흐름을 복잡하게 만들 수 있다. 그렇지만, 지금과 같은 문제에서 중간 탈출 루프 이외의 다른 방법을 사용하려면 코드가 복잡해진다(연습문제 1.3.30). 이런 문제를 처리할 수 있도록 do-while
반복문을 제공하는 언어도 있다. 파이썬에서는 필요에 따라 break
문을 신중히 사용하기를 권장한다.