多层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)