채택완료

Python break문 질문

2021-04-13 (화) 16:55:23 2,287

while statement1:

    if statement2:

        break

라면 break는 break가 포함되어있는 그 단락 의 가장 앞에 있는 반복문을 깨는것인가요,

아니면 제일 바깥쪽의 반복문을 깨는 것인가요?

답변 1개 / 댓글 3개

채택된 답변
+20 포인트

안녕하세요?

질문하신 취지를 제가 정확히 이해했는지 모르겠지만

궁금하신 부분이 이중 반복문에서 break를 사용하면 둘 중 어느 것을 break 하는지에 대한 것인지요?

파이썬에서는 break가 포함된 해당 반복문만 break 되며,

반복문에서 여러 개의 루프를 동시에 탈출할 수 있는 직접적인 명령어는 없습니다.

Copy
for x in range(10):
    for y in range(20):
        if y >= 15:
            break
print(x, y)

위 코드를 실행시켜보면 y에 대한 for 문에 break가 걸린 후에도

x에 대한 for 문이 계속 반복되기 때문에 결국 9 15라는 결과가 나옵니다.

한편 다음과 같은 방법으로 이중 for 문을 모두 break할 수 있습니다.

Copy
check = False
for x in range(10):
    for y in range(20):
        if y == 15:
            check = True
            break
    if check:
        break

print(x, y)

결과는 0 15로 나옵니다.

반면 함수에서의 return은 함수 자체를 중단시키기 때문에

이를 활용하면 보다 심플하게 작성할 수 있습니다 ^^

Copy
def foo():
    for x in range(10):
        for y in range(20):
            if y >= 15:
                return x, y
print(foo())

마찬가지로 0 15라는 결과가 나옵니다.

그럼 좋은 저녁 되세요 ^-^

답변에 대한 댓글 3개

2021-04-13 (화) 19:15:56
정말 감사합니다!!
2021-04-28 (수) 16:43:14
지금 다른거 과제하는데 막혔는데 이거 보고 또다시 도움 얻어갑니다.... 정말 담사해요ㅠ!
별말씀을요~ ^-^ 과제 홧팅하시고 굿밤 되세요 :)

답변을 작성하려면 로그인이 필요합니다.