2016-03-30 10 views
-2

私は配列のすべての要素を要約しようとしています。 int i = ______;の空白スペースを入れてこの作業をするには何が必要ですか?配列の合計を取得するにはどうすればよいですか?

public static int sumArray(int [] A){ 

     int sum = 0; 
     int i = ___________ ; 
     while(i>=0){ 
      sum = sum + A[i]; 
      i--; 
     }return sum; 

    } 
+0

'int i = A.length - 1;'は、 'int []'を反復する他の方法については私の答えを参照してください。 – robotlos

答えて

0

あなたの質問に答えるために、あなたはA.length - 1int iを設定する必要があります。 length - 1Arraysが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; 
} 
1

私は配列のすべての要素を要約しようとしています。 「int i = ______;」という空白のスペースを入れるには何が必要ですか?この仕事をするには?

あなたはi = A.length - 1;を行うことによってiに配列Aのサイズを指定する必要があります。

また、whileの代わりにforループを使用することもできます。ここで

は、コードスニペットです:

public static int sumArray(int [] A){ 
    int sum = 0; 
    for(int x : A) { 
     sum += x; 
    } 
    return sum; 
} 
0

あなたは既に合計を取得するためのコードを書いています。 iちょうどA.lengthで始まる必要があります。

合計を得るには他にもたくさんの方法があります。強化されたfor eachループを使用します。 IntStream.of(A).sum()を使用。他のライブラリメソッド。

関連する問題