配列を扱う学校用のプロジェクトを行っていますが、問題が発生しました。誰かが私が得ているエラーを説明できるかどうか疑問に思っていた。ここに私のコードです:多次元配列のコード結果が "ArrayIndexOutOfBoundsException"エラー
public class ArrayPrinter
{
public static void main(String[] args)
{
int [] oneD = {5, 6, 7, 8 };
int[][] twoD = {{2, 4, 6, 8},
{8, 7, 9, 1},
{3, 5, 1, 2}};
int[][] twoD2 = {{1, 2},
{3, 4, 5},
{6},
{7, 8, 9}};
printArray(oneD);
printArray(twoD);
System.out.println(" ");
printArray(twoD2);
}
public static void printArray(int[] arr) {
int size = arr.length;
System.out.print("[");
for(int i=0;i< size; i++){
System.out.print(arr[i]);
if(i<size-1){
System.out.print(",");
}
}
System.out.println("]");
}
public static void printArray(int[][] arr)
{
System.out.println("[ ");
for (int row = 0; row < arr.length; row++){
System.out.print("");
for (int i = 0; row < arr[row].length; i++)
{
printArray(arr[i]);
}
System.out.println("]");
}
}
}
私はEclipseでこれを実行するとエラーが発生します。これは私の出力です:
[5,6,7,8]
[
[2,4,6,8]
[8,7,9,1]
[3,5,1,2]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at ArrayPrinter.printArray(ArrayPrinter.java:51)
at ArrayPrinter.main(ArrayPrinter.java:19)
どうすればこのエラーを修正できますか?そして、あなたは理由を説明してください、むしろそれは私のためにそれをするのですか?
'のために(int型私= 0;行
と2次元配列のarr [行] [i]のような両方のインデックスを使用する必要があります1D配列を参照するarr [i]を行う代わりに –
例外について何か調べましたか?エラーメッセージのどの部分があなたに混乱していますか? – csmckelvey