1.問題描述:一直死循環,重複列印,直到出錯
2.相關程式碼
int[] Aarray = new int[]{2,4,5,6,2};
int[] Barray = new int[]{3,6,2,4,6};
for (int i = 0 ;i < 10 ;i ++ )
{
if (i < 5)
{
System.out.print(Aarray[i] + "\t");
}
else
{
i -= 5;
System.out.print(Barray[i] + "\t");
}
}
當i = 1, 2, 3, 4 不說了,打印1 2 3 4
當i = 5時進入else語句塊
i -= 5 即為i = i-5 結果是i = 0吧,然後i++
然後i又從1 開始循環。 for迴圈的終止條件 i
跳出來就有鬼了。 。 。 。
i -= 5;
是不是寫錯了。每次循環時,
i++
把i
加 1,但是i -= 5
; 又把i
減 5。i=5時,if不成立,進入else,
做完i -= 5; 結果就是i=0;
然後出else,i++之後,i=1;
又進入if
...
當i= 5時
...
簡單,你把程式自己腦子裡走一遍就清楚了啊,一開始i=0,小於5,輸出,然後i++到1,繼續小於5,在輸出,一直這樣直到i=5,然後i
你把i每個值的情況都看一下就一目了然了,在i>5的時候,i就進入了else,這個時候i又變成了0,也就是說i永遠到不了i>10這個終止循環的條件
邏輯錯了,加到6後,又減去5,回到1,然後又每次加1,加到6之後,又減去5,回到1,不斷地循環。
邏輯有問題 無限死循環
這種問題建議先找入門書或入門影片看10分鐘