2012-07-26 5 views
0

루프가 멈추고 다시 시작되는 것 같습니다. 다른 루프 안에 있지 않습니다. 첫 번째 로그 호출은 36을 인쇄하므로 외부 for 루프는 36 번 실행해야합니다. 루프의 로그 호출은 루프가 실행 된 횟수를 인쇄하기위한 것이므로 "0"에서 "4"까지 인쇄하여 루프가 5 회만 실행되었음을 나타냅니다. 이 프로세스를 다시 시작하여 첫 번째 로그 호출이 다시 시작되고 루프가 다시 5 회만 실행되도록하는 이유가 있습니까? 이것은 내 Logcat 출력에 따라 두 번 발생합니다.안드로이드의 루프가 짧게 멈추고 다시 시작합니다.

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)'을 사용하고 있습니다. 이것이 틀 렸습니다. 내가 코딩 한 코드를 코딩했는지 확신 할 수 없습니다. 당신이 원하는 것을 구체적으로 설명 할 수 있습니까? –

+0

중첩 루프로 작업 할 때 안쪽 루프가 완전히 완료된 후에 바깥 루프가 바뀝니다. – jnthnjns

+0

@JonTaylor 루프가 재시작되는 것이 무엇이 잘못된 것인지 잘 모르겠습니다 만, 첫 번째 루프는 일정해야하고 작동해야합니다. 고마워요, 나는 무엇이 잘못되었는지 알지 못합니다. 하하. –

답변

0

나는 내부 루프에서 rdUP.get(j)의 사용이 문제를 일으키는 것을 내 의견에 따라 생각한다.

당신 루프에 대한 경계 조건으로 외부 루프에 rdUP.get(i).getMyMeasurementData()의 크기를보고 rdUP.get(i).getMyMeasurementData()의 크기에 0에서 너무 내가 실행하는 첫 번째 테스트.

귀하의 내부 루프는 rdUP의 각 요소를 통해 이동 rdUP.get(j).getMyMeasurementData()에서 내가 번째 가치를 말한다. j th rdUPget(i)을 충족시킬만큼 충분한 요소가 있는지 어떻게 알 수 있습니까?

관련 문제