在android中停止循环并停止并重新启动
问题描述:
下面的循环似乎停止,然后重新启动。它不在另一个循环中。第一次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);
}
答
我怀疑按我的意见是,在内部循环使用rdUP.get(j)
是造成问题。
你先测试一下,看的rdUP.get(i).getMyMeasurementData()
大小在外环作为循环的边界条件等我从0到rdUP.get(i).getMyMeasurementData()
大小。
你的内循环,然后说,经过RDUP的每一个元素,并从rdUP.get(j).getMyMeasurementData()
得到我个值。你怎么知道j th rdUP有足够的元素来满足你的get(i)
?
你的外循环使用'rdUP.get(i)',但你的内循环使用'rdUP.get(j)'对我来说这是错误的。我不确定你是否编码了你认为你编码的内容。你能特别解释你想要发生什么吗? – 2012-07-26 18:54:47
请记住,当使用嵌套循环时,只有在内部循环完成后,外部循环才会更改 – jnthnjns 2012-07-26 19:00:23
@JonTaylor我不确定循环重新启动时出了什么问题,但我更改了我正在计算的变量第一个循环到一个应该是不变的和工作的!谢谢,我不确定什么是错的哈哈。 – 2012-07-26 19:01:40