简单的嵌套while循环

时间:2018-08-08 20:49:39

标签: python python-3.x

如果有人可以简单解释为什么在代码1中多次打印大的“ X”而不在代码2中多次打印,则高度感激。

  

代码1

flag=False
i=0
while not flag:
    print(f"big {i}")
    while True:
        i+=1
        print(i)
        if i==5:
            flag=True
            print("cond reached")
        break

输出

大0 1个 大1 2 大2 3 大三 4 大四 5 达到条件

  

代码2

flag=False
i=0
while not flag:
    print(f"big {i}")
    while True:
        i+=1
        print(i)
        if i==5:
            flag=True
            print("cond reached")
            break

输出

大0 1个 2 3 4 5 达到条件

1 个答案:

答案 0 :(得分:1)

在第二段中,break语句仅在i=5时执行,因此代码将停留在内部循环中,直到i =5。这种情况下,标志设置为{{ 1}},这意味着不会再次执行外部循环。换句话说:

在代码的第一段中,外部的while循环被多次调用,因为内部循环总是中断,而在代码的第二段中,外部的while循环仅被调用一次,因为内部的循环仅在{ {1}},它还为外循环设置了中断条件。