内部循环得到答案后如何中断整个嵌套循环

问题描述 投票:0回答:2
for a in range(1,1000):
    for b in range(1,1000):
        c2 = a**2 + b**2
        c = c2**0.5

        if a + b + c == 1000:
            answer = a * b * c
            print(answer)
            break

答案被打印两次,这意味着循环在中断后仍会继续。得到所需答案后,如何停止整个循环?

python break
2个回答
0
投票

您需要像else那样使用for

for a in range(1,1000):
    for b in range(1,1000):
        c2 = a**2 + b**2
        c = c2**0.5

        if a + b + c == 1000:
            answer = a * b * c
            print(answer)
            break
    #add these two lines
    else:
        break

0
投票

如果可以将所有代码放入一个函数中,则当结果值由内部循环计算出来时,可以调用return。它看起来像这样,

def fun():
    for a in range(1,1000):
        for b in range(1,1000):
            c2 = a**2 + b**2
            c = c2**0.5

            if a + b + c == 1000:
                answer = a * b * c
                return answer

或者您可以设置一个标志来停止外部循环,

stop_now = False
for a in range(1, 1000):
    for b in range(1, 1000):
        c2 = a ** 2 + b ** 2
        c = c2 ** 0.5

        if a + b + c == 1000:
            answer = a * b * c
            print(answer)
            stop_now = True
            break
    if stop_now:
        break
© www.soinside.com 2019 - 2024. All rights reserved.