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
爲什麼即使j的值已經最終滿足,最右邊的while循環也會繼續重複。
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
爲什麼即使j的值已經最終滿足,最右邊的while循環也會繼續重複。
這是最好的使用跟蹤表
1)所有的變量和條件,沿頂
2)每一個變量/條件變化,你去一次奠定了的解釋排下來,並輸入到表
1號線:i初始化爲1
線路2:條件I < = 3爲真,從而添加到跟蹤表中的一行向下
第3行:while循環運行,直到Ĵj被初始化爲1
線4-8內< 3成爲假
發生什麼事是out while循環運行一次,在其上遇到另一個縮進while循環,在我下一次增加之前必須運行其循環。
算法複雜性的一個副作用或有趣的一點是內部while循環將運行外部while循環運行的次數。這是按照N * N的順序。你可以從真值表中看出這是真的。在第三次迭代之前,當j停止時,內部while會運行三次(實際上不是n次,但是N-1)。
您看到您正在將外部循環中的j重新初始化爲1? –
在第4行中,您將i的每次迭代中的j的值重置爲1。 – JerseyMike