1

私は非常に単純な Java プログラムを作成していますが、次のエラーが発生します ( nは、コンソールからの以前の入力に基づく乱数です)。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: n

問題を引き起こすと思われる行は、ここの if ステートメントです。

for(int i = 0; 0 < x; i++){
    if(TalArray[i] < min){
         min = TalArray[i];
    }
}

変数「min」は以前に TalArray[0] に初期化されており、最小数を追跡しています。言及されているすべての変数は int 変数です

4

3 に答える 3

3

正しいコードは...

for(int i = 0; i < x; i++){
    if(TalArray[i] < min){
        min = TalArray[i];
    }
}
于 2012-08-12T22:59:52.887 に答える
1

コード内の の値が明確ではありませんxが、とにかくループ条件は次のようになります。

for (int i = 0; i < TalArray.length; i++)

または、このように、各反復で長さにアクセスしないようにするには:

for (int i = 0, x = TalArray.length; i < x; i++)

0 < x比較が間違っています: ループ内で の値を変更していないためx、 の初期値に応じて、ループは無限ループに入るか、まったくループに入らないかのいずれかになりますx

于 2012-08-12T23:00:15.990 に答える
0

問題は、変数Xが決して変化しないため、条件0 < xが常にtrue.

正しい条件は

for(int i = 0; i < x; i++)
于 2012-08-12T23:00:36.987 に答える