2012-07-15 30 views
5

まだJavaで始まっています。私は基本的に配列を作成し、その配列にforループで値を代入したいと考えています。現時点で私が持っているコードです:forループの配列の値を代入するjava

int i; 
int[] testarray = new int[50]; 

for (i = 0; i <=50; i++) { 
testarray[i]=i; 
} 

私がしたいすべてが(このメソッドを使用して)各エントリの配列の繰り返しの数を作るです 私はその本当にシンプルを知っているが、私は私かのように感じます基本を学ぶ際に何か重要なことを忘れてしまった! ありがとう!

+0

現在のコードで何が問題になっていますか?それは私にはうまく見えます。 – Antimony

答えて

10

すべてが停止条件を除いて結構です。

for (i = 0; i < 50; i++) { 

あなたの配列のサイズが50であるため、インデックスは0から始まり、最後のインデックスは49です。

あなたは、iの範囲を狭める(原則自分を繰り返さない)どこでも長さをハードコーディング避け、キャメルケースの命名規則を尊重する必要があります

int[] testArray = new int[50]; 

for (int i = 0; i < testArray.length; i++) { 
    testArray[i]=i; 
} 
+0

パーフェクト - ありがとう。私はそれを逃したとは信じられませんでした! –

+0

エラーメッセージを読み、エラーフラグとして扱うのではなく、その意味を理解してください。おそらく、ArrayOutOfBoudsExceptionというエラーメッセージが表示され、おそらくあなたがアクセスしようとしたインデックスを教えてくれましたが、範囲外でした。 –

6

配列には50個の要素があり、ループは51個の要素(0〜50)になります。

だけにコードを変更します。

int[] testarray = new int[50]; 

for (int i = 0; i < 50; i++) { 
    testarray[i] = i; 
} 

以上:

int[] testarray = new int[50]; 

for (int i = 0; i < testarray.length; i++) { 
    testarray[i] = i; 
} 
+0

また、iの宣言をループ外ではなくforループに移動することもできます。 –

+0

@kevin、そうだよ:) – lhlmgr

0

使用配列の長さの代わりに、ハードコーディング50.

for (i = 0; i <testarray.length; i++) 
関連する問題