Python 中的跳转语句 - break 语句

17 Mar 2025 | 4 分钟阅读

循环非常有帮助,节省时间,同时效率也很高。如果我们想自动化和重复一项任务,使用循环是我们的首选。但是,有时我们会遇到这样的情况:

  • 如果某个特定条件变为真,我们就必须终止循环。
  • 如果我们想终止当前迭代并继续下一个,如果条件为真。

为了控制这种情况,我们在 Python 中可以使用跳转语句。

之所以这样称呼,是因为如果我们使用这些语句,程序的控制将无条件地跳转到代码中其他地方的另一条语句。 这些语句是:

  1. break 语句
  2. continue 语句
  3. pass 语句
  4. 返回语句

在本文中,我们将重点介绍第一个跳转语句 - break

定义

break 语句是 Python 中用于在某个外部条件为真时终止循环的循环控制语句

  • 一旦解释器在代码中遇到 break 语句,它就会终止循环并将控制转移到循环的紧邻下一条语句。
  • 该语句几乎总是写在循环体内的 if 语句中,并且也用于 switch-case 语句中来检查条件。

语法

流程图

Jump Statement in Python-Break Statement

如果进入循环的测试表达式或条件为真,我们就进入循环。在循环内,如果编译器遇到 break 语句,循环的执行就会终止。

将执行循环之后的后续语句,否则将执行循环的剩余部分。

break 语句在 for 和 while 循环中的工作原理

Jump Statement in Python-Break Statement

要点

  1. 我们不能在没有循环的情况下使用 break 语句。它会引发错误。
    "SyntaxError:'break' outside loop"。
  2. 我们可以在 switch-case 语句中使用 break。
  3. 如果在嵌套循环的内层循环中使用 break 语句,则内层循环将被终止。
  4. "break" 是 Python 中的保留关键字。
  5. 在 Python 中,我们不能对 break 语句使用标签、条件或其他选项。

示例情景

假设您需要计算用户输入的数字的总和,如果用户输入一个负数,则计算必须停止,并且应该打印到最后一个数字为止的总和。如果用户想在达到最大限制之前停止计算数字,他可以输入负数。

输出

Enter a number: 1

Enter a number: 2

Enter a number: 3

Enter a number: 4

Enter a number: 5

Enter a number: 6

Enter a number: 7
Enter a number: 8
Enter a number: 9
Enter a number: -9
The sum of the 9 numbers you gave:  45

理解

此程序旨在查找用户输入的正数总和,最大限制为 100。在循环内,我们检查用户输入的数字是否大于 0。如果不是,则执行 break 语句,终止循环,并执行下一条语句,即 print 语句。否则,我们将该数字加到总和中。

您可能会问

如果用户想输入更多数字来计算总和,而负数只是一个拼写错误,我们需要跳过负数怎么办?对于这类应用,我们有'continue' 语句

示例程序

输出

Enter the number you want to search: 56
That is a match
The item 56 is found in the index 1

输出

Enter the number you want to search: 34
The element 34 is found at 0 index

输出

Found it 1
Found it 2
Found it 5
Found it 6

理解

我们试图打印列表中不包含 3 的元组的值。在外层循环中,我们遍历列表中的元组,在内层循环中,我们遍历元组中的值。当检查第一个元组时,未找到 3。因此,打印元素。在下一个元组中,找到了 3。它遇到了循环中整个第二元组的 break 语句。结果,内层循环终止,外层循环迭代到下一个迭代,处理第三个元组。

带标签的 Break 语句

顾名思义,带标签的 break 语句将附带一个标签,指示要打破什么。

我们可以使用带标签的 break 来打破外层循环,而不仅仅是内层循环。但是,Python 语言中没有此功能。 其他流行的编程语言使用此机制,但 Python 不允许。

向 Python 社区提出了一个 PEP,要求在该语言中添加带标签的 break 语句,但被拒绝,理由是它增加了代码和语言的不必要复杂性。

如果我们想在 Python 中使用此带标签的 break 语句的功能,我们可以将整个代码移到一个函数中并返回该值。