跳出循环或跳过一轮
break 立刻离开循环,哪怕问题还是 True。continue 不离开。它只跳过自己下面的那些行,仅这一轮,然后问题会再问一次。while 那一页是在等问题变成 False。print("done") 和 while 对齐,所以在循环外面:break 之后执行一次,循环自己结束时也执行一次。
cups 从 0 开始,问题是 cups < 5。每一轮先写出数字。数字是 2 时,break 执行。cups = cups + 1 写在 break 下面,这一轮不会执行。2 仍然小于 5。问题并没有不过。循环还是结束了。
cups = 0
while cups < 5:
print(cups)
if cups == 2:
break
cups = cups + 1
print("done")
你会看到 0,然后 1,然后 2,然后 done。没有 3,也没有 4。cups 里是 2。这个 2 已经写出来了,循环在数字往前走之前离开了。
跳过一轮,人还留在循环里
continue 只有在跳过之前数字已经往前走,才不会卡住。否则你想跳过的那个值停住不动,问题一直是 True,循环不会结束。这里循环里的第一行先加 1。数字变成 2 时,continue 只跳过这一轮的 print。循环回到 cups < 4。下一轮把数字变成 3,3 会被写出来。
cups = 0
while cups < 4:
cups = cups + 1
if cups == 2:
continue
print(cups)
print("done")
你会看到 1,然后 3,然后 4,然后 done。缺的是 2。done 还在,因为 continue 没有离开循环。问题后来自己不过了,外面那一行执行了一次。
同一个 break,这次放在 print 前面
把 break 放到 print 上面。走到 2 的那一轮,什么都还没写就离开了。done 仍然执行,因为它和 while 对齐。
cups = 0
while cups < 5:
if cups == 2:
break
print(cups)
cups = cups + 1
print("done")
你会看到 0,然后 1,然后 done。cups 还是 2,但这次这个 2 没有被写出来。两段程序只差 break 的位置。
如果把 continue 写在 cups = cups + 1 上面,跳过可能把数字冻在原地。cups 停在你本来要跳过的值上,问题一直是 True,循环不会结束。不要运行这种排法。先让数字往前走。再决定这一轮要不要跳过 continue 下面的行。
break 和 continue 用小写。大写的 Break 或 Continue 是 Python 不认识的名字,程序会停。下一页给走过的每一项编号,并把两条列表配成对。不用这两个词。
先算再运行
- 第一段程序先写数字,cups 到 2 时 break。出现什么,之后 cups 里是什么?
- continue 那段在跳过之前先加 1。写出哪些数,有没有 done?
- 第三段在 print 之前离开。屏幕上有 2 吗?
- 你把 continue 挪到 cups = cups + 1 上面,跳过的条件仍然成立。循环结束吗?
结果会变的地方
- 已经写了 break,还在等 cups < 5 不过
- break 已经在 2 执行了,却还等着 3 和 4
- 数字还没往前走就把 continue 放上去
- 把 break 下面的一行当成已经执行
- 把 Break 或 Continue 写成大写
一次读完
break 马上离开。while 的问题仍可以是 True。和 while 对齐的那一行会执行,break 下面的那一行不会。
break 在 print 后面,你会看到 0、1、2,然后 done,cups 停在 2。break 在 print 前面,你会看到 0、1,然后 done,cups 仍是 2。
continue 只跳过自己下面的行,而且只跳这一轮。数字先往前走,你会看到 1、3、4,然后 done,没有 2。
数字不往前走,continue 会让问题一直是 True,循环不会结束。
下一页给每一项编号,并把两条列表配成对。
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部