Python 循环控制基础
困难9循环里的“遥控器”:break 和 continue 怎么用?
写循环的时候,有时候我们不需要跑完全部次数,或者遇到讨厌的东西想跳过。Python 给了你两个小工具——break 和 continue,就像遥控器上的“停止”和“跳过”按钮,让你随时控制循环的节奏。
break:立刻喊停,不干了!
break 的作用是:一旦碰到它,整个循环立刻结束,后面不管还有多少次,统统不执行。就像你玩游戏打到 boss,发现打不过,直接按 ESC 退出游戏,不再继续。
例子:从一堆数里找第一个幸运数字
假设你有一串数字,想找到第一个能被 7 整除的数,找到了就停下来,不用再找后面的了。
numbers = [5, 12, 14, 21, 28] # 一堆数字
for num in numbers: # 逐个检查
if num % 7 == 0: # 如果这个数能被7整除
print("找到了:", num) # 打印出来
break # 找到第一个就停掉整个循环
输出只有:
找到了:14
虽然 21 和 28 也能被 7 整除,但 break 让循环提前结束,后面的不再执行。
生活中的 break
- 你翻一本故事书,翻到第 10 页发现太无聊,直接合上书不看了——整个看书过程停了。
- 妈妈让你吃水果,你尝了一口觉得酸,直接把整盘水果放下不吃了。
- 排队买冰淇淋,轮到你时发现最喜欢的口味卖完了,你直接离开队伍不排了。
continue:跳过这一轮,继续下一轮
continue 的作用是:跳过本轮循环中剩下的代码,直接开始下一轮。就像吃巧克力豆,吃到一颗坏了的,你吐出来,接着吃下一颗,而不是把整袋扔掉。
例子:只打印出不是 3 的倍数的数
从 1 到 5 中,跳过 3,打印剩下的。
for i in range(1, 6): # i 从 1 到 5
if i % 3 == 0: # 如果 i 是 3 的倍数
continue # 跳过本次,不打印
print(i) # 只打印不是 3 的倍数的数
输出:
1
2
4
5
数字 3 被跳过了,循环继续处理 4 和 5。
生活中的 continue
- 翻书时遇到有折角的页面,跳过这一页,继续往后翻。
- 吃荔枝时,剥开一个发现里面有虫子,扔掉这个,再剥下一个。
- 玩游戏抽卡,抽到重复角色,直接跳过不看动画,继续抽下一张。
新手最容易犯的 3 个错误
1️⃣ 把 break 写在 if 外面,导致循环第一轮就结束
for i in range(1, 5):
print(i)
break # 这里没有条件,循环只执行一次就停了
正确做法:break 通常要写在 if 条件里面。
2️⃣ continue 后面忘记了还会执行的代码
for i in range(1, 5):
if i == 3:
continue
print("这里永远不会执行") # 这行在 continue 后面,永远跑不到
print(i)
正确做法:continue 后面的代码不要放重要操作,或者把它们放到 if 外面。
3️⃣ 在 while 循环里忘记更新条件,导致死循环
i = 1
while i <= 5:
if i == 3:
continue # 跳过了 i += 1,i 永远等于 3,循环永远不结束
print(i)
i += 1
正确做法:确保循环变量的更新放在 continue 之前,或者用 for 循环来避免这类问题。
配合使用:输入数字,遇到负数停止,跳过 0,只打印正数
这个例子把两个工具结合起来,就像用一个遥控器控制游戏进程:
while True: # 无限循环
num = int(input("输入一个数:")) # 用户输入数字
if num < 0: # 如果是负数
break # 停止整个循环
if num == 0: # 如果是0
continue # 跳过本次,直接输入下一个
print("正数:", num) # 只打印正数
运行效果(用户输入):
输入一个数:5 → 打印 正数:5
输入一个数:0 → 不打印,直接重新输入
输入一个数:-1 → 程序结束
完整可运行示例:模拟考试答题系统
想象你在做一场考试,题目有 10 道,遇到不会的可以跳过,做到一半想交卷就用 break 提前退出。
print("开始考试,共5题,输入负数交卷,输入0跳过本题")
for question in range(1, 6): # 题目编号1到5
answer = int(input(f"第{question}题的答案:")) # 接收答案
if answer < 0: # 如果输入负数
print("你选择了提前交卷!")
break # 直接退出循环
if answer == 0: # 如果输入0
print("跳过本题!")
continue # 跳到下一题
print(f"第{question}题已提交答案:{answer}")
print("考试结束。")
输入示例:
第1题的答案:10 → 打印“第1题已提交答案:10”
第2题的答案:0 → 打印“跳过本题!”
第3题的答案:-1 → 打印“你选择了提前交卷!” 然后循环结束
和循环类型搭配的小提醒
| 循环类型 | break 效果 | continue 效果 |
|---|---|---|
| for 循环 | 中断整个 for 循环 | 跳到下一个迭代元素 |
| while 循环 | 中断 while 循环 | 跳回 while 条件判断 |
两种循环里都能用,但要小心 while 循环里 continue 可能导致条件变量没更新,变成死循环。
接下来学什么?
- 掌握 break 和 continue 后,可以学习 嵌套循环(循环里面套循环),比如用 break 从内层循环跳到外层。
- 如果想在循环里提前判断复杂条件,可以结合 if-elif-else 和 逻辑运算符(and、or)。
- 更高级的控制方式:else 子句(for 或 while 后面可以跟 else,在循环正常结束(没有被 break 中断)时执行)。
记住:break 和 continue 是好用的“遥控器”,但别滥用——用太多会让代码像迷宫一样难懂。恰当的时候用,能节省时间,逻辑也更清晰。
例题精讲
下列关于Python中break语句的说法,正确的是?
在Python中,continue语句会立即终止整个循环的执行。
以下代码的功能是输出0到4之间除了3以外的所有整数。请填写缺失的语句。
for i in range(5):
if i == 3:
___
print(i)关于break和continue的区别,以下描述正确的是?
以下代码模拟输入密码,当输入'q'时退出循环。请填写缺失的语句。
while True:
pwd = input('请输入密码(输入q退出):')
if pwd == 'q':
___
print('你输入的是:', pwd)