2011-03-28 6 views
1

나는 안드로이드 용 주사위 게임을 만들고 있는데,이 루프는 번호가 "j"인 배열을 채 웁니다. 그것은 (로그 파일이 인)for 루프에있어 문제가 있습니까?

Rolls[0] = 4 
Rolls[0] = 2 
Rolls[0] = 3 
Rolls[0] = 6 
Rolls[0] = 3 
Rolls[0] = 4 

를 출력 것을 제외

int[] rolls = new int[6]; 
    for (int j : rolls) { 
     rolls[j] = (int) (Math.random() * 5); 
     rolls[j]++; 
     Log.i(getClass().getName(), "Rolls[" + j + "] = " + rolls[j]); 
    } 

같이 가서 난이

int[] rolls = new int[6]; 
    for (int j = 0; j < rolls.length ; j++) { 
     rolls[j] = (int) (Math.random() * 5); 

     rolls[j]++; 
     Log.i(getClass().getName(), "Rolls[" + j + "] = " + rolls[j]); 
    } 

에 코드를 변경할 때 출력

정확
Rolls[0] = 4 
Rolls[1] = 2 
Rolls[2] = 3 
Rolls[3] = 6 
Rolls[4] = 3 
Rolls[5] = 4 

내가해야 할 일 뭔가 어리석은 어딘가에.

+0

멋진 답에 감사드립니다 (너무 빨랐습니다!) andersoj는 먼저 대답했기 때문에 정답을 얻습니다. 이제 나는 내 HS 컴퓨터 선생님을 강의해야 해. – Gonzo

답변

8

문 : rolls의 항목을 통해

for (int j : rolls) 

로 반복하지 인덱스. Java에서는 배열이 0으로 초기화되기 때문에 j 값은 6 번의 반복마다 0입니다. 새로운 배열을 수행 할 경우에는 사용자가 인덱스 정보를 포함하지 않은 배열을 통해 향상된 루프 사용할 때

2
for (int j : rolls) { 

은, 롤의 개수의 값은 0

이다.

당신은 반복해서 반복 할 수 있으므로, 스스로 추적한다면 그렇게 할 수 있습니다. 그러나 직접하지 않고도 자신에 대한 정보가 없습니다.

2

처음에는 j이 각 배열 요소의 초기 값이됩니다. 이 경우 기본값 인 모두 0입니다.