Python break 图片看不了?点击切换HTTP 返回上层
我们知道,在执行 while 循环或者 for 循环时,只要循环条件满足,程序将会一直执行循环体,不停地转圈。但在某些场景,我们可能希望在循环结束前就手动离开循环,Python 提供了 2 种强制离开当前循环体的办法:
在某些场景中,如果需要在某种条件出现时强行中止循环,而不是等到循环条件为 False 时才退出循环,就可以使用 break 来完成这个功能。
break 用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到 break,系统就将完全结束该循环,开始执行循环之后的代码。这就好比在操场上跑步,原计划跑 10 圈,可是当跑到第 2 圈的时候,突然想起有急事要办,于是果断停止跑步并离开操场,这就相当于使用了 break 语句提前终止了循环。
需要注意的是,对于带 else 块的 for 循环,如果使用 break 强行中止循环,程序将不会执行 else 块。例如如下程序:
在使用 break 语句的情况下,循环的 else 代码块与直接放在循环体后是有区别的,即如果将代码块放在 else 块中,当程序使用 break 中止循环时,循环不会执行 else 块;如果将代码块直接放在循环体后面,当程序使用 break 中止循环时,程序自然会执行循环体之后的代码块。
另外,针对嵌套的循环结构来说,Python 的 break 语句只能结束其所在的循环体,而无法结束嵌套所在循环的外层循环。例如:
如果想达到 break 语句不仅跳出单前所在循环,同时跳出外层循环的目的,可先定义 bool 类型的变量来标志是否需要跳出外层循环,然后在内层循环、外层循环中分别使用两条 break 语句来实现。例如如下程序:
运行上面程序,将看到如下运行结果:
- 使用 continue 语句,可以跳过执行本次循环体中剩余的代码,转而执行下一次的循环。
- 只用 break 语句,可以完全终止当前循环。
在某些场景中,如果需要在某种条件出现时强行中止循环,而不是等到循环条件为 False 时才退出循环,就可以使用 break 来完成这个功能。
break 用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到 break,系统就将完全结束该循环,开始执行循环之后的代码。这就好比在操场上跑步,原计划跑 10 圈,可是当跑到第 2 圈的时候,突然想起有急事要办,于是果断停止跑步并离开操场,这就相当于使用了 break 语句提前终止了循环。
break 语句一般会结合 if 语句进行搭配使用,表示在某种条件下,跳出循环体,如果使用嵌套循环,break 语句将跳出当前的循环体。
break 语句的语法非常简单,只需要在相应 while 或 for 语句中直接加入即可。例如如下程序:# 一个简单的for循环 for i in range(0, 10) : print("i的值是: ", i) if i == 2 : # 执行该语句时将结束循环 break运行结果为:
i的值是: 0
i的值是: 1
i的值是: 2
需要注意的是,对于带 else 块的 for 循环,如果使用 break 强行中止循环,程序将不会执行 else 块。例如如下程序:
# 一个简单的for循环 for i in range(0, 10) : print("i的值是: ", i) if i == 2 : # 执行该语句时将结束循环 break else: print('else块: ', i)上面程序同样会在 i==2 时跳出循环,而且此时 for 循环不会执行 else 块。
在使用 break 语句的情况下,循环的 else 代码块与直接放在循环体后是有区别的,即如果将代码块放在 else 块中,当程序使用 break 中止循环时,循环不会执行 else 块;如果将代码块直接放在循环体后面,当程序使用 break 中止循环时,程序自然会执行循环体之后的代码块。
另外,针对嵌套的循环结构来说,Python 的 break 语句只能结束其所在的循环体,而无法结束嵌套所在循环的外层循环。例如:
for i in range(0,4) : print("此时 i 的值为:",i) for j in range(5): print(" 此时 j 的值为:",j) break print("跳出内层循环")运行结果为:
此时 i 的值为: 0
此时 j 的值为: 0
跳出内层循环
此时 i 的值为: 1
此时 j 的值为: 0
跳出内层循环
此时 i 的值为: 2
此时 j 的值为: 0
跳出内层循环
此时 i 的值为: 3
此时 j 的值为: 0
跳出内层循环
如果想达到 break 语句不仅跳出单前所在循环,同时跳出外层循环的目的,可先定义 bool 类型的变量来标志是否需要跳出外层循环,然后在内层循环、外层循环中分别使用两条 break 语句来实现。例如如下程序:
exit_flag = False # 外层循环 for i in range(0, 5) : # 内层循环 for j in range(0, 3 ) : print("i的值为: %d, j的值为: %d" % (i, j)) if j == 1 : exit_flag = True # 跳出里层循环 break # 如果exit_flag为True,跳出外层循环 if exit_flag : break上面程序在内层循环中判断 j 是否等于 i,当 j 等于 i 时,程序将 exit_flag 设为 True,并跳出内层循环;接下来程序开始执行外层循环的剩下语句,由于 exit_flag 为 True,因此也会执行外层循环的 break 语句来跳出外层循环。
运行上面程序,将看到如下运行结果:
i的值为: 0, j的值为: 0
i的值为: 0, j的值为: 1