CC++ & Algorithm

Python 循环控制基础

困难9
语言版本:C++Python
概述:用break提前跳出循环,用continue跳过本次循环的余下部分,就像看书时跳过不喜欢的章节或者合书不看了。

循环里的“遥控器”:break 和 continue 怎么用?

写循环的时候,有时候我们不需要跑完全部次数,或者遇到讨厌的东西想跳过。Python 给了你两个小工具——breakcontinue,就像遥控器上的“停止”和“跳过”按钮,让你随时控制循环的节奏。

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 是好用的“遥控器”,但别滥用——用太多会让代码像迷宫一样难懂。恰当的时候用,能节省时间,逻辑也更清晰。

例题精讲

1单选题

下列关于Python中break语句的说法,正确的是?

Abreak用于跳过本次循环的剩余代码,继续下一次循环
Bbreak用于提前终止整个循环,执行循环外的下一条语句
Cbreak只能用在for循环中,不能用在while循环中
Dbreak后面必须跟一个条件表达式才能使用
2判断题

在Python中,continue语句会立即终止整个循环的执行。

3填空题
以下代码的功能是输出0到4之间除了3以外的所有整数。请填写缺失的语句。
for i in range(5):
    if i == 3:
        ___
    print(i)
4单选题

关于break和continue的区别,以下描述正确的是?

Abreak和continue都可以用于终止循环,但break只能用在for循环中
Bbreak是终止整个循环,continue是跳过本次循环剩余代码继续下一次
Cbreak在循环嵌套中只能跳出最内层循环,continue则可以跳出所有循环
Dbreak和continue的功能完全相同,只是关键字不同
5填空题
以下代码模拟输入密码,当输入'q'时退出循环。请填写缺失的语句。
while True:
    pwd = input('请输入密码(输入q退出):')
    if pwd == 'q':
        ___
    print('你输入的是:', pwd)