java ArrayIndexOutOfBoundsException の原因と解決方法【初心者向け】

この記事は約2分で読めます。
記事内に広告が含まれています。

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 が出たら、

インデックスが範囲内か確認する

これをまずチェックしましょう。

コメント

タイトルとURLをコピーしました