i= 1
while (i<=3):
print("i",i)
j=1
while (j<3):
print("j",j)
j=j+1
i=i+1
print("Done!")
现在我在想?为什么输出不是: I1 J1 J2 I2 I3
而是: I1 J1 J2 I2 J1 J2 I3 J1 J2
为什么最右边的while循环不断重复,即使最终已经满足j的值。
答案 0 :(得分:2)
那是因为。您正在外部while循环中重新初始化j
到1
。因此,每次外循环开始时,内循环将运行两次。
while (i<=3):
print("i",i)
j=1 <-- This re-initializes the value of `j`
while (j<3):
print("j",j)
j=j+1
i=i+1
答案 1 :(得分:0)
最好通过使用跟踪表
来解释1)所有变量和条件都在顶部
布局2)每次变量/条件发生变化时,你都会向下走一行并进入表格
第1行:i初始化为1
第2行:条件i&lt; = 3为True,因此向跟踪表添加一行
第3行:j初始化为1
第4-8行,内部while循环运行,直到j <3变为假
发生的事情是out while循环运行一次,在它上面遇到另一个缩进的while循环,它必须在我下一次递增之前运行它。
算法复杂性的一个副作用或有趣点是内部while循环将运行其外部while循环运行的次数。这是按N * N的顺序。你可以从真值表中看到这是真的。内部同时运行三次(实际上不是n次而是N-1),因为j在它到达第三次迭代之前停止。