ホームページ  >  記事  >  Java  >  Java の範囲外の配列 - java.lang.ArrayIndexOutOfBoundsException を解決する方法は?

Java の範囲外の配列 - java.lang.ArrayIndexOutOfBoundsException を解決する方法は?

WBOY
WBOYオリジナル
2023-06-24 22:16:393916ブラウズ

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];
for(int i=0; i

System.out.println(array[i]);

}

ここでのループ数は配列の長さであり、配列の添え字の範囲を超えないことが保証されます。

3. try-catch ステートメント ブロックを使用して例外をキャッチします。

大規模なプログラムを開発している場合、範囲外の問題を回避するのは難しい場合があります。このとき、try-catch ステートメントを使用して例外をキャッチし、プログラムが正常に動作するようにすることができます。例:

int[] array = new int[5];
try{

int a = array[5]; //这里会产生越界异常

}catch(ArrayIndexOutOfBoundsException e){

System.out.println("数组下标越界!");

}

ここでは、try-catch ステートメント ブロックを使用して範囲外の例外をキャプチャし、プロンプト情報が提供されます。

概要:

Java における配列添字の範囲外の問題は、プログラム開発においてよくある問題ですが、正しい添字を使用するか、ループ内の添字範囲を制御する限り、問題は解決します。 , この問題は効果的に回避できます。この問題が発生した場合は、try-catch ステートメントやその他の方法を使用して対処できます。

以上がJava の範囲外の配列 - java.lang.ArrayIndexOutOfBoundsException を解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。