当前位置:首页>python>Python 循环控制:break vs continue 完全指南

Python 循环控制:break vs continue 完全指南

  • 2026-10-10 20:07:00
Python 循环控制:break vs continue 完全指南
【写在前面】可以参看我的视频学习,喜欢的话,关注,点赞,分享

从入门到精通,5 个场景彻底搞懂循环控制


一、先搞懂核心区别

┌─────────────────────────────────────────────────┐
│                                                 │
│   🛑 break        →   终止整个循环,直接退出     │
│   ⏭️ continue     →   跳过当前这轮,继续下一轮   │
│                                                 │
│   比喻:break = 辞职不干了                      │
│        continue = 这波团不打,等下波            │
│                                                 │
└─────────────────────────────────────────────────┘

二、break:找到答案就收工

场景 1:密码输错 3 次锁定

correct_pwd = "python666"

for i in range(3):
    pwd = input(f"第{i+1}次输入密码:")

if pwd == correct_pwd:
        print("✅ 登录成功!")
break# 对了就停,不用试满 3 次
else:
        print("❌ 密码错误")

else:  # 循环正常结束(没触发 break)才执行
    print("🚫 账户已锁定")

流程图:

第1次 → 错误 → 继续
第2次 → 正确 → break 跳出 → 登录成功

场景 2:列表中找第一个偶数

nums = [1, 3, 5, 8, 10, 12]

for num in nums:
if num % 2 == 0:
        print(f"找到第一个偶数:{num}")
break# 找到就停,10 和 12 不看了

输出:

找到第一个偶数:8

💡 break 的灵魂:减少无效计算,提升效率


三、continue:不符合条件的跳过

场景 3:只处理有效数据

data = [85, -5, 92, 0, 78, -3, 88]

for score in data:
if score < 0:        # 无效数据
        print(f"跳过无效值:{score}")
continue# 后面的代码不执行,直接下一轮

    print(f"处理成绩:{score}")

输出:

处理成绩:85
跳过无效值:-5
处理成绩:92
处理成绩:0
跳过无效值:-3
处理成绩:88

场景 4:打印 1-20 跳过 7 的倍数

for i in range(1, 21):
if i % 7 == 0:
continue# 是 7 的倍数就跳过

    print(i, end=" ")

# 输出:1 2 3 4 5 6 8 9 10 11 12 13 15 16 17 18 19 20
# 跳过了:7, 14

💡 continue 的灵魂:过滤逻辑, cleaner code


四、break vs continue 对比表

维度
break
continue
执行结果
循环彻底结束
继续下一轮循环
剩余迭代
不再执行
正常执行
使用场景
找到目标、异常退出、用户取消
数据过滤、条件跳过
效率意义
减少无效计算
减少嵌套层级

五、组合实战:数据处理流水线

# 处理订单数据:遇到错误停止,跳过未支付订单
orders = [
    {"id": 1, "status": "paid", "amount": 100},
    {"id": 2, "status": "unpaid", "amount": 200},
    {"id": 3, "status": "paid", "amount": -50},  # 异常数据
    {"id": 4, "status": "paid", "amount": 300},
]

total = 0

for order in orders:
# 1. 检查异常数据
if order["amount"] < 0:
        print(f"🚨 订单{order['id']}金额异常,停止处理")
break

# 2. 跳过未支付
if order["status"] != "paid":
        print(f"⏭️ 订单{order['id']}未支付,跳过")
continue

# 3. 处理有效订单
    total += order["amount"]
    print(f"✅ 订单{order['id']}处理完成")

print(f"总金额:{total}")

输出:

✅ 订单1处理完成
⏭️ 订单2未支付,跳过
🚨 订单3金额异常,停止处理
总金额:100

六、避坑指南

❌ 坑 1:continue 后面写代码(死代码)

for i in range(5):
if i == 2:
continue
        print("这行永远执行不到")  # 警告:Unreachable code
    print(i)

❌ 坑 2:break 只能跳一层循环

for i in range(3):
for j in range(3):
if j == 1:
break# 只跳出内层,外层继续
        print(f"{i}-{j}")

输出:

0-0
1-0
2-0

想跳出多层?用 flag 变量或封装成函数

✅ 正确姿势:多层循环跳出

deffind_target():
for i in range(3):
for j in range(3):
if i * j == 4:
return (i, j)  # 直接返回,彻底退出
returnNone

result = find_target()
print(result)  # (2, 2)

七、一句话总结

break    →  循环的"紧急出口",满足条件立马撤
continue →  循环的"筛选器",不符合的不要看

📝 课后练习(附思路)

题目
考察点
1. 猜数字游戏,猜中 break 退出
break 基础
2. 打印 1-100,跳过个位是 3 的数
continue 基础
3. 嵌套循环找矩阵中的目标值
break 在嵌套中的使用

最新文章

随机文章