While循环多层嵌套外层不满足直接跳出内层循环

多层while嵌套时,内层是否要执行结束才会退出

测试结果:是的不会直接跳出,内层循环结束后才能退出外层


 测试代码如下:

"""
退出最外层循环时,内层是否执行完了才会退出
测试结果:是的当然不会直接跳出循环,会将内层循环执行结束后才能跳出
"""

import time
import threading


class TestWhile:
    def __init__(self):
        super(TestWhile, self).__init__()
        self.flag = 0
        self.a = 1

    def test1(self):
        """
        测试当退出线程时,内循环还会继续执行吗,还是直接退出
        """
        while self.flag == 1:
            while self.a < 50:
                self.a += 1
                print('current', self.a)
                time.sleep(0.5)
        else:
            print('exit threading!')

    def test(self):
        """
        退出线程时,内层每次执行也检查外循环条件是否满足
        """
        while self.flag == 1:
            while self.a < 50:
                if self.flag != 1:
                    break
                self.a += 1
                print('current', self.a)
                time.sleep(0.5)
        else:
            print(f"{threading.currentThread()}exit threading - current", self.a)


if __name__ == '__main__':
    w = TestWhile()
    w.flag = 1
    t1 = threading.Thread(target=w.test1)
    t1.start()
    time.sleep(1)
    w.flag = 0
    print(w.flag)

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值