あなたの質問に答えるために、あなたはA.length - 1
にint i
を設定する必要があります。 length - 1
はArrays
が0でインデックス付けされているため、length
を単独で使用するとIndexOutOfBoundsException
になります。
あなたの方法は次のようになります。
public static int sumArray(int[] A) {
int sum = 0;
int i = A.length - 1;
while (i >= 0) {
sum = sum + A[i];
i--;
}
return sum;
}
をただし、あなたははるかにきれいな方法でこれを行うことができます。
1)あなたはそうのようなIntStream
を使用できるJava 8の使用:
public static int sumArray(int[] A) {
return IntStream.of(A).sum();
}
2)あなたはfor
ループを使用することができます
public static int sumArray(int[] A) {
int sum = 0;
for(int i = 0; i < A.length; i++){
sum += A[i];
}
return sum;
}
3)あなたは、強化されfor
ループを使用することができます。
public static int sumArray(int[] A) {
int sum = 0;
for(int i : A){
sum += i;
}
return sum;
}
'int i = A.length - 1;'は、 'int []'を反復する他の方法については私の答えを参照してください。 – robotlos