Javaデータの範囲外エラー:スレッド 'main'の例外java.lang.ArrayIndexOutOfBoundsException:10



Java Data Out Bounds Error



今日、Java配列を学習し、演習「フラッシュバック」を実行すると、次のエラーなどのエラーが発生しました。

Exception in thread 'main' java.lang.ArrayIndexOutOfBoundsException: 10 at Test2.main(Test2.java:9)

コードは以下のように表示されます



public class Test2 { public static void main(String[] args){ int[] a = new int[]{1,2,3,4,5,6,7,8,9,0} int[] b = new int[a.length] for(int i = 0 i < a.length i++){ b[i] = a[a.length - i] } for(int i = 0 i < a.length i++){ a[i] = b[i] System.out.println(a[i]) } } }

プロンプトの意味をインターネットで検索したところ、a.length-iの値が配列aの長さを超えていることがわかりました。 a.length-1-iに変更する必要があります。この方法でのみ、実際のフラッシュバックを実現できます。

正しいコードは次のとおりです。



public class Test2 { public static void main(String[] args){ int[] a = new int[]{1,2,3,4,5,6,7,8,9,0} int[] b = new int[a.length] for(int i = 0 i < a.length i++){ b[i] = a[a.length - 1 - i] } for(int i = 0 i < a.length i++){ a[i] = b[i] System.out.println(a[i]) } } }

結果は次のとおりです。

0 9 8 7 6 5 4 3 2 1