2016-01-18 97 views
-3

此嵌套循環運行多少次。我如何通過查看代碼來確定它。嵌套循環,它運行多少次?

int i = 5, j =0; 
while (i>0) 
{ 
j = 1; 
while (j<i) 
{ 
System.out.println(「Inner loop!」); 
j++; 
} 
System.out.println(「Outer loop!」); 
i 
+0

您可以像運行一樣逐行處理它。如果太複雜,請使用表格。 –

+0

這不是一個無限循環嗎? – Manu

回答

0

既然你從i--最後一行留下了--,這將永遠不會終止。

+0

真的,技術上講,它會循環:) –

+0

好點。雖然,它會覺得無限大,考慮到隨着「我」的增長,內部循環會擴大而不是收縮。 – ChiefTwoPencils

0

好吧,首先,代碼不完整,取決於它的完成方式,完全改變了答案。應該是這樣的:

int i = 5, j =0; 
while (i>0) 
{ 
    j = 1; 
    while (j<i) 
    { 
     System.out.println(「Inner loop!」); 
     j++; 
    } 
    System.out.println(「Outer loop!」); 
    i++; // OR i--; 
} 

如果情況是最後部分是「我++」末它運行的無限次,因爲當「雖然(I> 0)」的計算結果中,「i 「永遠不會變得小於0.並且僅在邏輯中」無限「,因爲數字(在這種情況下爲整數)在代碼/編譯器中具有明確的上限。

如果它的「我 - 」那麼它是一個簡單的計數問題。較大的循環[while(i> 0)]將從5減至0,並且當i爲零時退出,這意味着它將在i = 5,i = 4,i = 3,i = 2時運行,和i = 1。這意味着外循環有效運行5次,每次運行少一點。

J從1開始並計數到剛好在[while(j [lessthen] i)],這意味着它將在第一次計算1到4時運行,因爲J從1開始並且趨於1 - 然後我(第一次5)。所以第一次是3,第二次是3,第三次是2,第四次是1,第五次沒有,因爲在最後一種情況下,評估是1(j)[lessthen] 1(i),這是錯誤的並退出循環。

爲了得到您的最終號碼,您需要統計內部循環成功發生的次數,在這種情況下爲4 + 3 + 2 +1或... 10次。假設它的「我 - 」

+0

如果它是用'i ++'編寫的,雖然它需要很長時間才能完成,但這並不是真正的無限。一個'int'有一個上限,最終會溢出到負數並停止。 – ChiefTwoPencils

+0

這是真的,但他沒有定義任何類型的代碼系統,所以我進行了一次飛躍,並認爲它更像是一個基於邏輯的事情,然後是一個實際的代碼。 – Marky

+0

是啊,它不是實際的代碼,只是一個嵌套循環如何工作的例子,謝謝 –