以下のように表示されます。
- (例外表示)
- Exception in thread "xxx" java.lang.ArrayIndexOutOfBoundsException: xx
原因
- 配列に無い要素にアクセスしようとした
(3要素しかない配列に対して、4要素目を取得しようとしたなど)
対処方法
- 配列の要素数を確認してから要素にアクセスしたり、拡張for文を使用するなどして、存在しない要素にはアクセスしないようにする
発生例
以下のようなパターンでエラーが発生します。
例)配列arrの値をループ処理で出力する
1 2 3 4 5 6 7 8 |
public class Sample { public static void main(String[] args) { int[] arr = {10, 20, 30}; for(int i=0; i<10; i++){ System.out.println(arr[i]); } } } |
- コマンドプロンプト
- C:\>java Sample 10 20 30 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at Sample.main(Sample.java:5)
3要素しかない配列に対して、4要素目をアクセスしようとしたためエラーが発生します。
備考
- 配列の要素数を取得したい場合は、.lengthを使用します。
- 拡張for文は、以下記事をご覧ください。
⇒ [Java] List型の全要素をループ処理する