Javaで配列を使っていると、次のようなエラーが出ることがあります。
java.lang.ArrayIndexOutOfBoundsException
この記事では、
- ArrayIndexOutOfBoundsException の原因
- よくあるミス
- 正しい解決方法
を初心者向けにわかりやすく解説します。
✅ 結論:配列の範囲を超えてアクセスしている
ArrayIndexOutOfBoundsException は、
配列の「存在しない番号」にアクセスしたとき
に発生します。
そもそも配列の番号はどこからどこまで?
Javaの配列は 0から始まります。
例えば、要素が3つの配列の場合:
int[] numbers = {10, 20, 30};
使えるインデックスは:
0
1
2
です。
3は存在しません。
よくあるエラー例
int[] numbers = {10, 20, 30};
System.out.println(numbers[3]);
このコードを実行すると、
java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
というエラーが出ます。
理由は、numbers[3] が存在しないからです。
for文でよく起きるミス
初心者が特にやりがちなのが、
for (int i = 0; i <= numbers.length; i++) {
System.out.println(numbers[i]);
}
この書き方です。
<= を使っているため、
最後に存在しないインデックスまでアクセスしてしまいます。
正しい書き方
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
ポイントは:
i < numbers.length
と「未満」にすることです。
length の確認も大事
配列の長さは次のように確認できます。
System.out.println(numbers.length);
配列を扱うときは、
length を基準に考える
のが安全です。
まとめ
- 配列は0から始まる
- 存在しない番号にアクセスするとエラーになる
- for文では「< length」を使う
ArrayIndexOutOfBoundsException が出たら、
インデックスが範囲内か確認する
これをまずチェックしましょう。

コメント