ホームページ >Java >&#&チュートリアル >Java の範囲外の配列 - java.lang.ArrayIndexOutOfBoundsException を解決する方法は?
Java は広く使用されているプログラミング言語であり、配列は Java 言語で非常に一般的なデータ構造です。配列を使用する場合、配列の添字が範囲外になるために発生する「java.lang.ArrayIndexOutOfBoundsException」例外が発生することがあります。では、この例外を解決するにはどうすればよいでしょうか?
1. 例外の概要
「java.lang.ArrayIndexOutOfBoundsException」は、Java プラットフォームによって提供される例外で、プログラムの実行時にスローされます。この例外は、配列の添字が範囲外であること、つまり、存在しない配列要素がアクセスされたことを示します。エラー メッセージには、通常、例外が発生した場所 (行数) と例外の原因が示されます。 :
java. lang.ArrayIndexOutOfBoundsException: 5
例外情報は、プログラムの 5 番目の位置で、配列の境界を超えた要素にアクセスしたため、プログラムがスローされたことを示しています。この例外。
2. 例外の原因の分析
配列を使用する場合、多くの場合、添字を使用して配列内の要素にアクセスする必要があります。 Java の配列の添字は 0 から始まり、配列の長さが 1 減るまで続きます。たとえば、長さ 5 の配列の場合、添え字の範囲は 0 ~ 4 です。
配列の長さを添え字として使用しようとすると、範囲外の例外が発生します。例:
int[] array = new int[5];
int a = array[5]; // ここで範囲外の例外が発生します
Inコードの 2 行目では、長さ 5 の配列の 6 番目の要素にアクセスしようとしています。配列の添字は 0 から始まるため、サイズ 5 の配列の最大添字は 5 ではなく 4 です。したがって、プログラムは ArrayIndexOutOfBoundsException 例外をスローします。
同様に、for ループを使用して配列要素に順番にアクセスする場合、ループの添え字が配列の範囲を超えると、範囲外例外も発生します。例:
int[] array = new int[5];
for(int i=0; i
System.out.println(array[i]); // 这里会产生越界异常
}
コードの 2 行目の i 値は 0 から始まり、1 ずつ増加します。ループ数は 6 です。配列の添字の最大値は4であるため、6回目のループではiの値が5となり、配列の添字の範囲を超えます。したがって、プログラムは ArrayIndexOutOfBoundsException 例外もスローします。
3. 異常な解決策
1. 配列の添字範囲情報を理解し、間違った添字の使用を回避することで、配列の範囲外の問題を効果的に回避できます。
2. for ループを使用して配列要素に順次アクセスする場合は、ループの添字が配列の範囲を超えないように注意してください。次のコードを使用すると、配列の範囲外の問題を回避できます。
int[] array = new int[5]; } ここでのループ数は配列の長さであり、配列の添え字の範囲を超えないことが保証されます。 3. try-catch ステートメント ブロックを使用して例外をキャッチします。 大規模なプログラムを開発している場合、範囲外の問題を回避するのは難しい場合があります。このとき、try-catch ステートメントを使用して例外をキャッチし、プログラムが正常に動作するようにすることができます。例: int[] array = new int[5]; }catch(ArrayIndexOutOfBoundsException e){ } ここでは、try-catch ステートメント ブロックを使用して範囲外の例外をキャプチャし、プロンプト情報が提供されます。 概要: Java における配列添字の範囲外の問題は、プログラム開発においてよくある問題ですが、正しい添字を使用するか、ループ内の添字範囲を制御する限り、問題は解決します。 , この問題は効果的に回避できます。この問題が発生した場合は、try-catch ステートメントやその他の方法を使用して対処できます。
for(int i=0; iSystem.out.println(array[i]);
try{int a = array[5]; //这里会产生越界异常
System.out.println("数组下标越界!");
以上がJava の範囲外の配列 - java.lang.ArrayIndexOutOfBoundsException を解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。