【Java】配列のインデックスエラーの典型例まとめ|初心者がつまずくポイントをやさしく解説

Java入門・実践
スポンサーリンク
スポンサーリンク

はじめに

Java の配列で最も多いエラーが
インデックスエラー(IndexOutOfBoundsException)

  • 0 から始まるのを忘れる
  • length と比較していない
  • ループ条件を間違える
  • 空配列にアクセスしてしまう

こうしたミスは、初心者だけでなく実務でも頻出です。

この記事では、やさしく・実務寄りに
配列のインデックスエラーの典型例を整理していきます。


まずは基本:配列のインデックスは「0 から始まる」

Java
int[] a = {10, 20, 30};
インデックス
010
120
230

有効なインデックスは 0〜(length – 1)


典型例①:範囲外アクセス(length と同じ値を使う)

Java
int[] a = {10, 20, 30};
System.out.println(a[3]); // エラー
  • length は 3
  • 有効範囲は 0〜2
  • a[3] は存在しないためエラー

典型例②:ループ条件のミス(<= を使ってしまう)

Java
int[] a = {10, 20, 30};

for (int i = 0; i <= a.length; i++) { // ← ミス
    System.out.println(a[i]);         // 最後にエラー
}

正しい書き方

Java
for (int i = 0; i < a.length; i++) {
    System.out.println(a[i]);
}

<= を使うと最後に 1 回余分にアクセスしてしまう。


典型例③:空配列にアクセスしてしまう

Java
int[] a = new int[0];
System.out.println(a[0]); // エラー
  • length が 0
  • 有効なインデックスが存在しない

典型例④:配列の長さを勘違いする(3つあるのに 4 つあると思う)

Java
int[] a = new int[3]; // 要素数 3
a[3] = 100;           // エラー

配列の長さは 固定
new int[3] なら 0〜2 の 3 つだけ。


典型例⑤:多次元配列のインデックスを間違える

Java
int[][] matrix = {
    {1, 2},
    {3, 4}
};

System.out.println(matrix[0][2]); // エラー
  • matrix[0] の長さは 2
  • 有効範囲は 0〜1
  • [2] は存在しない

典型例⑥:配列を動的に変更できると誤解する

Java
int[] a = new int[3];
a[3] = 10; // サイズを増やすことはできない

配列は固定長。
サイズを変えたい場合は List を使う。


典型例⑦:String.split() の結果を過信する

Java
String[] parts = "a,b,".split(",");
System.out.println(parts[2]); // エラーになることがある

split の仕様によっては
末尾の空要素が削除される ため、
期待した長さにならないことがある。


インデックスエラーを防ぐためのポイント

① length を正しく使う

Java
for (int i = 0; i < arr.length; i++) { ... }

② 0 始まりを意識する

③ 空配列の可能性を考える

④ 多次元配列は「行 → 列」の順で確認する

⑤ 配列は固定長であることを忘れない


まとめ

インデックスエラーの典型例

  • length と同じ値を使う
  • ループ条件を <= にする
  • 空配列にアクセス
  • 多次元配列の範囲外アクセス
  • 配列サイズを増やそうとする
  • split の結果を過信する

防ぐポイント

  • 0 始まりを意識
  • length を正しく使う
  • 空配列に注意
  • 配列は固定長

decopon
decopon

配列のインデックスエラーは、 「0 始まり」「length は最大値ではなく要素数」 この2つを押さえるだけで一気に減らせます。Java Bronze の試験でも、実務のバグ調査でも、 ここを理解しておくと安心して配列を扱えます。あなたの学びが、次のステップにつながりますように。

moco
moco

配列は“0 から始まる箱の列”。
最後の箱は length – 1。
このイメージがあると、エラーがぐっと減るよ。

コメント

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