break如何在for循环中工作?

2024-07-04 05:05:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,对for循环中“break”的工作方式感到困惑。{Python文档中有一个范围为^的素数(^)计算在1文档中:

for n in range(2, 10):
   for x in range(2, n):
       if n % x == 0:
           print(n, 'equals', x, '*', n//x)
           break
   else:
       # loop fell through without finding a factor
       print(n, 'is a prime number')

输出是:

^{pr2}$

但是,当我在代码中升级“break”时:

for n in range(2, 10):
   for x in range(2, n):
       if n % x == 0:
           print(n, 'equals', x, '*', n//x)
       break
   else:
       # loop fell through without finding a factor
       print(n, 'is a prime number')

输出将是:

2 is a prime number
4 equals 2 * 2
6 equals 2 * 3
8 equals 2 * 4

你能解释一下我升级“break”后代码里发生了什么吗?谢谢你


Tags: in文档loopnumberforifisrange
2条回答

当然-简单地把“中断”去掉意味着它不再受制于前面的“如果”。在

代码读取if语句,对其进行操作,然后不管if语句是真是假,它都会执行“break”并退出for循环。在

在第一个示例中,只有当n%x==0语句为true时,代码才会退出“for”循环。在

请尝试执行以下代码-这可能会使其更清楚:

for n in range(2, 10):
for x in range(2, n):
    if n % x == 0:
        print(n, 'equals', x, '*', n//x)
        break
    print('loop still running...')
else:
    # loop fell through without finding a factor
    print(n, 'is a prime number')

对比:

^{pr2}$

我相信输出可以帮助你了解发生了什么。#1仅在满足if条件时中断,而无论if条件是否满足,#2始终中断。在

相关问题 更多 >

    热门问题