zl程序教程

您现在的位置是:首页 >  Python

当前栏目

python跳出循环之break

2023-04-18 14:13:40 时间

python跳出循环之break

我们写循环的时候,会碰到两层或多层循环的情况,有些时候满足条件后需要跳出全部循环。
但是break只能跳出最近的一层循环。那如何解决这个问题呢?往下看...

第一种方法:利用函数的return

# 说明:return是结束函数的执行,直接返回
def doFn():
    for i in range(1,5):
        for j in range(5,10):
            if j==8:
                return
            print("i=%d j=%d" %(i,j))
        print("outer",i)
doFn()

使用 函数 测试效果截图:
效果图

第二种方法:利用for…else配合continue和外层循环体中的break跳出循环

# 说明:for循环执行完毕,则执行else,如果for循环体中有break并执行了break,else不执行
for i in range(1, 5):
    for j in range(5, 10):
        if j == 8:
            break
        print("i=%d j=%d" % (i, j))
    else:
        continue
    print("outer", i)
    break

测试效果截图:
效果图

第三种方法:利用自定义异常,来抛出异常,结束循环

class breakLoopError(Exception):pass
try:
    for i in range(1, 5):
        for j in range(5, 10):
            if j == 8:
                raise breakLoopError()
            print("i=%d j=%d" % (i, j))
        print("outer", i)
except breakLoopError:
    pass

使用 自定义异常 测试效果截图:
效果图

第四种方法(不推荐):定义flag标志 配合break

flag = True
for i in range(1, 5):
    for j in range(5, 10):
        if j == 8:
            flag = False
            break
        print("i=%d j=%d" % (i, j))
    if not flag:
        break
    print("outer", i)

测试效果截图:
效果图
不推荐的原因是:如果循环有两层以上的情况,就要重复的判断flag,代码也重复,变得不好阅读、维护,代码累赘。…

最后

break只能跳出一层循环的代码就不附上了。

接着

此文的 python跳出循环之break 就到此结束了。

最最后,就再见了