1

これにより配列の範囲外の例外が発生するのはなぜですか?

 x[10][2] = 5;

これが 11 番目の配列の 3 番目のスポットを割り当てる場合、値は 5

長方形で考えました。11 行 (10 個の配列を表す) をカウントする必要があり、次に 2 である 3 番目の列に移動する必要があるようです。

また

実際には存在しないサイズ 2 の配列で 11 番目のスポットを探している配列と見なす必要がありますか?

4

3 に答える 3

0

xの 11 番目の要素は配列ですか? もしそうなら、その長さはどれくらいですか?
その要素の長さが3未満である可能性が高いため、そのエラーが発生しています。
試してテストしてください

 
  System.out.printf(x[10].length);
 

それが役立つことを願っています。

于 2012-11-21T04:36:37.923 に答える
0

これにより配列の範囲外の例外が発生するのはなぜですか?

 x[10][2] = 5;

これは、配列に対して定義した範囲外の位置にアクセスしようとした場合にのみ発生します。例えば

int x[20][20];

x[10][2] = 5; にすることができます。10 < 20 および 2 < 20 であるため、問題はありません。

x[30][20] = 5;

2D 配列のサイズを超える位置である 2D 配列の位置 (30,20) にアクセスしようとしているため、範囲外の例外が発生します。

于 2012-11-21T04:26:33.647 に答える