当前位置:首页>python>Python break与continue——循环控制语句

Python break与continue——循环控制语句

  • 2026-09-02 20:06:25
Python break与continue——循环控制语句

一、什么是break和continue?

在循环(for 或 while)中,有时我们需要提前结束循环或跳过某次循环。Python 提供了两个关键字来实现这些功能:

  • • break:立即终止整个循环,跳出循环体。
  • • continue:跳过本次循环的剩余代码,直接进入下一次循环。

它们让循环控制更加灵活。


二、break 语句

2.1 作用

break 用于立即退出当前循环,不再执行循环体内剩下的代码,也不再进行下一次条件判断。程序会继续执行循环后面的代码。

2.2 在 for 循环中使用

for i inrange(1, 6):if i == 3:breakprint(i)print("循环结束")# 输出:# 1# 2# 循环结束

当 i 等于 3 时,break 被执行,循环终止,不再输出 4 和 5。

2.3 在 while 循环中使用

i = 1while i <= 5:if i == 3:breakprint(i)    i += 1print("循环结束")# 输出:# 1# 2# 循环结束

2.4 break 与 else 子句

如果循环带有 else 子句,且循环被 break 终止,那么 else 块不会执行。else 只有在循环正常结束(没有被 break 打断)时才会执行。

for i inrange(1, 6):if i == 3:breakprint(i)else:print("循环正常结束")   # 不会执行print("完成")# 输出:# 1# 2# 完成

三、continue 语句

3.1 作用

continue 用于跳过当前这次循环的剩余代码,直接进入下一次循环的条件判断(for 循环会取下一个元素,while 循环会重新判断条件)。

3.2 在 for 循环中使用

for i inrange(1, 6):if i == 3:continueprint(i)# 输出:1 2 4 5

当 i == 3 时,continue 执行,print(i) 被跳过,直接进入下一次循环。

3.3 在 while 循环中使用(⚠️ 注意循环变量的更新)

在 while 循环中使用 continue 要特别小心,因为如果 continue 出现在循环变量更新之前,可能导致无限循环。

i = 1while i <= 5:if i == 3:        i += 1# 必须在这里也更新,否则会卡在3continueprint(i)    i += 1# 输出:1 2 4 5

如果忘记在 continue 前更新循环变量,就会无限循环。一种更好的做法是将循环变量更新放在循环开头或使用 for 循环(自动处理迭代)。

3.4 continue 与 else

continue不会影响 else 的执行,只要循环没有因 break 退出,else 就会执行。

for i inrange(1, 6):if i == 3:continueprint(i)else:print("循环正常结束")# 输出:# 1 2 4 5# 循环正常结束

四、break 和 continue 在嵌套循环中

4.1 break 在嵌套循环中

break 只能退出它所在的最内层循环,不会影响外层循环。

for i inrange(3):for j inrange(3):if j == 1:breakprint(f"i={i}, j={j}")# 输出:# i=0, j=0# i=1, j=0# i=2, j=0

内层循环在 j==1 时退出,但外层循环继续执行。

4.2 continue 在嵌套循环中

continue 也只是跳过当前内层循环的本次迭代。

for i inrange(3):for j inrange(3):if j == 1:continueprint(f"i={i}, j={j}")# 输出:# i=0, j=0# i=0, j=2# i=1, j=0# i=1, j=2# i=2, j=0# i=2, j=2

4.3 如何退出多层循环?

如果需要从多层循环中完全跳出,可以使用以下几种方法:

  • • 使用标志变量
  • • 将循环封装在函数中,用 return
  • • 使用 for-else 配合 break(但只能退出一层)

示例:用标志变量退出两层循环

found = Falsefor i inrange(5):for j inrange(5):if i == 2and j == 2:            found = Truebreakprint(i, j)if found:break

五、常见错误与注意事项

5.1 在 continue 前忘记更新 while 循环变量

如前所述,会导致无限循环。

5.2 break 和 continue 只能用在循环内部

在循环外使用会报语法错误。

5.3 混淆 break 和 continue 的作用

  • • break:完全跳出循环
  • • continue:只跳过一次迭代

5.4 在嵌套循环中,break 只退出内层

如果想要退出外层,需要额外的逻辑。

5.5 在循环的 else 块中使用 break/continue

else 块中也可以使用 break 和 continue,但很少见。break 在 else 中会跳出循环,但循环已经结束了,所以没什么意义。

5.6 break 和 continue 在异常处理中

如果在 try 块中使用 break 或 continue,要注意 finally 块仍会执行。


六、实战案例

案例1:猜数字游戏(带重试限制)

import randomsecret = random.randint(1, 10)attempts = 3print("猜一个 1-10 的数字,你有 3 次机会")for i inrange(1, attempts + 1):    guess = int(input(f"第{i}次猜:"))if guess == secret:print("恭喜,猜对了!")breakelif guess < secret:print("猜小了")else:print("猜大了")else:print(f"机会用完了,答案是{secret}")

这里用 break 在猜对时提前退出循环,否则循环正常结束后执行 else 提示失败。

案例2:查找列表中的第一个偶数

numbers = [3, 7, 9, 12, 15, 18]for num in numbers:if num % 2 == 0:print(f"找到第一个偶数:{num}")breakelse:print("列表中没有偶数")

找到第一个偶数后立即用 break 退出,避免不必要的遍历。

案例3:跳过特定元素

# 打印 1-10 中不是 3 的倍数的数字for i inrange(1, 11):if i % 3 == 0:continueprint(i)

案例4:用户输入验证(while 循环)

whileTrue:    age = input("请输入你的年龄(输入 q 退出):")if age.lower() == 'q':breakifnot age.isdigit():print("请输入数字")continue    age = int(age)if age < 0or age > 150:print("年龄必须在 0-150 之间")continueprint(f"你的年龄是:{age}")break# 输入有效后退出循环

这里用 continue 跳过无效输入,用 break 在有效输入或用户退出时结束循环。

案例5:打印菜单,处理用户选择

whileTrue:print("\n1. 存款")print("2. 取款")print("3. 查询")print("0. 退出")    choice = input("请选择:")if choice == '0':print("再见")breakif choice notin ['1', '2', '3']:print("无效选择,请重新输入")continueif choice == '1':print("执行存款功能")elif choice == '2':print("执行取款功能")else:print("执行查询功能")

案例6:检查素数(break 的使用)

num = int(input("请输入一个整数:"))if num < 2:print("不是素数")else:for i inrange(2, num):if num % i == 0:print(f"{num} 不是素数")breakelse:print(f"{num} 是素数")

这里用 for-else 判断是否找到了因子:如果循环被 break(找到因子),则执行 if 内的输出;如果循环正常结束(没有因子),则执行 else 输出“是素数”。


七、总结

  • • break:立即终止整个循环,跳出循环体。
  • • continue:跳过本次循环的剩余代码,直接进入下一次循环。
  • • 在 while 循环中使用 continue 时,务必确保循环变量更新在 continue 之前或之后合理处理,避免无限循环。
  • • 循环的 else 子句只在循环没有被 break 终止时执行。
  • • 在嵌套循环中,break 和 continue 只作用于当前最内层循环。
  • • 合理使用 break 和 continue 可以使代码更简洁、高效。

记住口诀:

  • • break 跳出整个圈,
  • • continue 跳过这一遍,
  • • 配合循环真方便,
  • • 小心变量更新全。

最新文章

随机文章