Python 提供了 2 种强制离开当前循环体的办法:
使用 continue 语句,可以跳过执行本次循环体中剩余的代码,转而执行下一次的循环。
只用 break 语句,可以完全终止当前循环。

一、break

break 语句可以立即终止当前循环的执行,跳出当前所在的循环结构。无论是 while 循环还是 for 循环,只要执行 break 语句,就会直接结束当前正在执行的循环体。

若要使用break同时跳出内层和外层循环最简单的方法就是借用一个 bool 类型的变量。
在跳出内循环时更改 flag 的值,同时在外层循环体中,判断 flag 的值是否发生改动,如有改动,则再次执行 break 跳出外层循环;反之,则继续执行外层循环。

add = "http://c.biancheng.net/python/,http://c.biancheng.net/shell/"
#提前定义一个 bool 变量,并为其赋初值
flag = False## 标题
for i in range(3):
    for j in add:
        if j == ',':
            #在 break 前,修改 flag 的值
            flag = True
            break   
        print(j,end="")
    print("\n跳出内循环")
    #在外层循环体中再次使用 break
    if flag == True:
        print("跳出外层循环")
        break
       
执行结果:
http://c.biancheng.net/python/
跳出内循环
跳出外层循环

当然,这里仅跳出了 2 层嵌套循环,此方法支持跳出多层嵌套循环。

注意
无论是 while 循环还是 for 循环,其后都可以紧跟着一个 else 代码块它的作用是当循环条件为 False 跳出循环时,程序会最先执行 else 代码块中的代码。

add = "http://c.biancheng.net/python/"
for i in  add:
    print(i,end="")
else:
    print("\n执行 else 代码块")

运行结果
http://c.biancheng.net/python/
执行 else 代码块

这种情况下如果使用 break 语句跳出循环体,不会执行 else 中包含的代码。

add = "http://c.biancheng.net/python/,http://c.biancheng.net/shell/"
for i in add:
    if i == ',' :
        #终止循环
        break
    print(i,end="")
else:
    print("执行 else 语句中的代码")
print("\n执行循环体外的代码")

程序执行结果为:
http://c.biancheng.net/python/
执行循环体外的代码

从输出结果可以看出,使用 break 跳出当前循环体之后,该循环后的 else 代码块也不会被执行
但是,如果将 else 代码块中的代码直接放在循环体的后面,则该部分代码将会被执行。

二、continue

和 break 语句相比,continue 语句的作用则没有那么强大,它只会终止执行本次循环中剩下的代码,直接从下一次循环继续执行。

仍然以在操作跑步为例,原计划跑 10 圈,但当跑到 2 圈半的时候突然接到一个电话,此时停止了跑步,当挂断电话后,并没有继续跑剩下的半圈,而是直接从第 3 圈开始跑。

1、add = "http://c.biancheng.net/python/,http://c.biancheng.net/shell/"
2、# 一个简单的for循环
3、for i in add:
4、    if i == ',' :
5、        # 忽略本次循环的剩下语句
6、        print('\n')
7、        continue
8、    print(i,end="")
    
运行上面程序,将看到如下运行结果:
http://c.biancheng.net/python/
http://c.biancheng.net/shell/

当遍历 add 字符串至逗号( , )时,会进入 if 判断语句执行 print() 语句和 continue 语句。
其中,print() 语句起到换行的作用,而 continue 语句会使 Python 解释器忽略执行第 8 行代码,
(即逗号没有打印)直接从下一次循环开始执行。