2012-07-26 193 views
0

下面的循環似乎停止,然後重新啓動。它不在另一個循環中。第一次Log調用打印36,因此外部for循環應運行36次。儘管循環內部的Log調用意圖打印循環運行的次數,但打印「0」到「4」意味着循環僅運行5次。是否有任何理由讓這個過程重新開始,以便第一個Log調用再次觸發,循環再次只運行5次?這根據我的Logcat輸出發生兩次。在android中停止循環並停止並重新啓動

ArrayList<RunData_L> rdUP = t.getMyPositiveRunData(); 
ArrayList<RunData_L> rdDOWN = t.getMyNegativeRunData(); 
Log.d("rdUP size", rdUP.get(0).getMyMeasurementData().size() + ""); 
for (int i = 0; i < rdUP.get(i).getMyMeasurementData().size(); i++) { 
    Log.d("i", i + ""); 
    ArrayList<BigDecimal> tempUP = new ArrayList<BigDecimal>(), tempDOWN = new ArrayList<BigDecimal>(); 
    for(int j = 0; j < rdUP.size(); j++) { 
     tempUP.add(rdUP.get(j).getMyMeasurementData().get(i)); 
     tempDOWN.add(rdDOWN.get(j).getMyMeasurementData().get(i)); 
    } 
    pdUP.add(tempUP); 
    pdDOWN.add(tempDOWN); 
} 
+0

你的外循環使用'rdUP.get(i)',但你的內循環使用'rdUP.get(j)'對我來說這是錯誤的。我不確定你是否編碼了你認爲你編碼的內容。你能特別解釋你想要發生什麼嗎? – 2012-07-26 18:54:47

+0

請記住,當使用嵌套循環時,只有在內部循環完成後,外部循環纔會更改 – jnthnjns 2012-07-26 19:00:23

+0

@JonTaylor我不確定循環重新啓動時出了什麼問題,但我更改了我正在計算的變量第一個循環到一個應該是不變的和工作的!謝謝,我不確定什麼是錯的哈哈。 – 2012-07-26 19:01:40

回答

0

我懷疑按我的意見是,在內部循環使用rdUP.get(j)是造成問題。

你先測試一下,看的rdUP.get(i).getMyMeasurementData()大小在外環作爲循環的邊界條件等從0到rdUP.get(i).getMyMeasurementData()大小。

你的內循環,然後說,經過RDUP的每一個元素,並從rdUP.get(j).getMyMeasurementData()得到個值。你怎麼知道j th rdUP有足夠的元素來滿足你的get(i)