python跳出嵌套循环

本文详细介绍了Python中的嵌套循环结构,包括while和for循环的嵌套,以及如何使用break语句实现内层循环的跳出并可能同时终止外层循环。还探讨了通过flag变量和for…else…结构来控制循环的特殊用法。
摘要由CSDN通过智能技术生成

一.python的嵌套循环

  • 嵌套循环: 在一个循环语句内,再包含另一个循环语句
  • 语法结构
while 条件1:
     外循环代码块
     while 条件2:
         内循环代码块
#-------------------------------
for 变量1  in  序列1:
     外循环代码块
     for  变量2  in 序列2:
         内循环代码块
#-------------------------------
while 条件1:
    外循环代码块
    for  变量2  in 序列2:
       内循环代码块  
#-------------------------------
for 变量1  in  序列1:
     外循环代码块
     while 条件2:
         内循环代码块

image-20220313235940009
循环嵌套结构,执行流程为:

(1) 当外层循环条件为True时,则执行其循环体中语句(包含普通程序块和内循环)

(2)当内层循环的循环条件为True时执行此循环的循环体,直到内层循环条件为Fasle,跳出内层循环

(3)回到外层循环,如果外循环的条件仍为True,则进入第(2),直到外层循环的条件为False

(4)当外层循环的循环条件为False时,则整个嵌套循环执行完毕

​ 一句话: 外层循环执行一次, 内层循环从头到尾执行一轮

二.嵌套循环跳出

python里使用break跳出循环,但是一次只能终止当前的循环,如果break在内层循环里,是可以把内层循环终止,但是外层循环还是会继续,如果在内层循环里把内层循环终止的同时也把外层循环终止掉呢?
案例:如何让内层循环终止的同时把外层循环也终止掉?

while True:  # 外层循环
    num1 = input('输入一个数:')
    while True:  # 内层循环
        num2 = input('输入另一个数:')
        if num2 == '666':
            print('哈哈哈哈')
            break

如上代码所示,想要在内层循环里,输入666时,此时num2 = ‘666’,会执行print(‘哈哈哈哈’),执行break语句,把内层循环终止掉,但是外层循环依旧还是会继续,依旧会进入到num1 = input(‘输入一个数:’)语句,此时我们可以引入一个变量flag,赋值初始值为False,当执行了print(‘哈哈哈哈’)语句后,重新赋值flag = True,外层循环体加入if语句,控制是否break,就可以实现在内层循环控制内层循环终止与外层循环终止

# flag赋值初始值为False
flag = False
while True:  # 外层循环
		# 当flag为True时才执行break
    if flag:
        break
    num1 = input('输入一个数:')
    while True:  # 内层循环
        num2 = input('输入另一个数:')
        if num2 == '666':
            print('哈哈哈哈')
            flag = True
            break

也可以使用for…else…的特性来跳出循环

while True:  # 外层循环
    num1 = input('输入一个数:')
    for i in range(10):  # 内层循环
        num2 = input('输入另一个数:')
        if num2 == '666':
            print('哈哈哈哈')
            break
    else:
        continue
    break


  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值