[英]python looping inquiry
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的值最终已经被它满足。
那是因为。 你是在外部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)所有变量和条件都在顶部
2)每次变量/条件改变时,你都会向下走一行并进入表格
第1行:i初始化为1
第2行:条件i <= 3为真,因此向下添加一行跟踪表
第3行:j初始化为1
第4-8行内部while循环运行直到j <3变为false
发生的事情是out while循环运行一次在它上面遇到另一个缩进的while循环,它必须在我下一次递增之前运行它的路线。
算法复杂性的一个副作用或有趣点是内部while循环将运行其外部while循环运行的次数。 这是N * N的顺序。你可以从真值表中看到这是真的。内部同时运行三次(实际上不是n次而是N-1),因为j在它到达第三次迭代之前停止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.