💬 学习前小提示:欢迎学习本节课!如果你在运行代码时遇到报错、看不懂的地方,欢迎在评论区留言提问,一起交流学习。
一、课程简介
在 while、for 循环执行过程中,默认会完整走完每一轮循环。Python 提供两个循环控制关键字:break 和 continue,用来人为改变循环执行流程,实现提前结束循环、跳过某一轮循环的效果。
break:终止整个循环
continue:只跳过本次循环,直接进入下一轮循环
注意:break、continue 只能写在循环内部(while / for),写在循环外面直接报错。
二、break 语句详解
2.1 概念
break:立即结束当前所在的循环,跳出循环体,执行循环后面的代码。
类比:跑步,听到停止哨音,直接结束跑步,不再继续跑圈。
语法:
break
一般搭配 if 判断:满足某个条件时,触发 break,结束循环。
2.2 代码案例1:for循环使用break
遍历数字,找到数字5,直接终止循环。
for i in range(1,10): if i == 5: print("已经找到5,结束循环") break print(f"当前数字:{i}")print("循环结束,执行循环外部代码")
输出:
当前数字:1当前数字:2当前数字:3当前数字:4已经找到5,结束循环循环结束,执行循环外部代码
2.3 代码案例2:while无限循环搭配break
while True 会生成无限死循环,依靠 break 退出循环,常用于密码校验、交互输入场景。
while True: pwd = input("请输入密码:") if pwd == "123456": print("密码正确!") break # 密码正确,跳出死循环 else: print("密码错误,请重新输入")print("程序执行完毕")
2.4 特殊知识点:嵌套循环中break的行为
⚠️ 重点:break只会终止自己所在的那一层循环,不会退出外层循环。
# 嵌套循环,内层breakfor a in range(1,4): print(f"-----外层循环 a = {a} -----") for b in range(1,4): if b == 2: print("内层触发break") break print(f"内层 b = {b}")
输出:
-----外层循环 a = 1 -----内层 b = 1内层触发break-----外层循环 a = 2 -----内层 b = 1内层触发break-----外层循环 a = 3 -----内层 b = 1内层触发break
现象:内层break结束内层循环,外层循环继续正常运行。Python没有直接“一键跳出全部嵌套循环”的语法;想要退出全部循环,一般用标记变量(flag标志位)实现。
三、continue 语句详解
3.1 概念
continue:结束本次循环后面剩余代码,直接跳到循环条件判断,开启下一轮循环。
类比跑步:这一圈我不跑完全程,直接跳过,开始跑下一圈,整体跑步不会停止。
continue不会终止整个循环,仅仅跳过这一轮剩下代码。
语法:
continue
3.2 案例1 for循环 continue:打印1‑10奇数,跳过偶数
for i in range(1,11): if i % 2 == 0: continue # 如果是偶数,跳过后面print,直接下一轮 print(i)
输出:1 3 5 7 9
3.3 ⚠️超级大坑:while循环使用continue容易造成死循环
致命易错点:continue会跳过它后面所有代码。如果循环变量自增写在continue后面,自增代码永远不会执行 → 死循环!
❌错误写法(死循环,不要运行)
i = 0while i < 5: if i == 2: continue # continue跳过后面 i +=1,i永远等于2 print(i) i += 1
✅正确写法:把变量更新放到 continue 前面
i = 0while i < 5: if i == 2: i += 1 # 先更新变量,再continue continue print(i) i +=1
for循环不用担心这个坑,因为for会自动管理迭代变量,不需要手动写i+=1。
3.4 嵌套循环中 continue
continue 同样只作用于自己所在内层循环,外层循环不受影响。
四、break 与 continue 对比总结表
关键字 | 作用 | 对整个循环影响 | 典型场景 |
break | 直接跳出整个循环 | 循环彻底结束 | 找到目标值退出、密码验证退出死循环 |
continue | 跳过本次循环剩余代码 | 循环继续运行 | 过滤数据,跳过不需要处理的数据 |
记忆口诀:
break:刹车,全部停下
continue:跳过,下一轮再来
五、和循环else的联动(重要特殊知识点)
Python循环可以带else子句:
循环正常走完(没有被break打断)才会执行else;
如果循环被break强制终止,则不会执行else里面代码;
continue不会影响else,continue只是跳过单次迭代,循环属于正常走完。
案例演示:
# case1:被break打断,else不执行for i in range(5): if i ==3: break print(i)else: print("循环正常结束执行else")print("-"*20)# case2:continue,循环完整跑完,else执行for i in range(5): if i ==3: continue print(i)else: print("循环正常结束执行else")
六、补充:pass语句(区分,不要混淆)
pass是空占位语句,什么都不干,仅仅为了补齐语法;
和break、continue不一样,不会改变循环流程。
if 1>2: pass #暂时没有逻辑,先占位,避免语法报错
七、常见易错点汇总
1. break/continue 只能放在 while、for循环内部,外面直接写会语法报错。
2. 嵌套循环:break、continue 只作用于当前最近一层循环,不能直接跳出多层循环。
3. while循环使用continue,务必保证循环变量更新代码不会被continue跳过,防止死循环。
4. break会抑制循环else;continue不会抑制else。
5. continue之后的同一层级代码永远不会执行,不要把重要业务逻辑写在continue后面。
八、课后练习题(共3道)
题目1(基础)
编写程序,输出1~20,当数字等于12的时候使用`break`结束循环。写出完整代码。
题目2(中等)
使用continue,输出1‑20之间所有3的倍数以外的数字(跳过3、6、9……)。
题目3(进阶)
模拟账号登录:给用户最多3次输入密码机会;密码是python123。
- 密码正确:打印登录成功,break结束循环
- 密码错误:提示剩余几次机会
- 3次全部输错,退出循环,提示“次数耗尽,禁止登录”
💬 学完本课后,欢迎在评论区反馈:代码运行遇到的报错、你自己写的练习代码、有什么不理解的地方,我们一起探讨!