0

問題に直面しています。配列に8つの値を入力すると、array.size()を使用して配列のサイズが8であることを確認できますが、次のループを呼び出すと、outofbound例外が発生する可能性があります。1 つのループ サイクルで 4 つの値をトラバースします。

    for (int pos=0; pos < array.size(); pos += 4)
    {
         id = db.insert(array.get(pos), array.get(pos+1), array.get(pos+2));

         id_array.add(String.valueOf(id));
         id_array.add(array.get(pos+=3));
    }

助けてください

4

2 に答える 2

3

配列のサイズは8であるため、0から7までのインデックスが付けられます。ループでは、posが0の場合、pos+=3ステートメントは3になり、次に4ずつインクリメントして7になり、呼び出すとpos+1例外が発生します。 。

これはタイプミスだと思います。

id_array.add(array.get(pos+=3));

する必要があります

id_array.add(array.get(pos+3));

また、実際の終了条件はpos+3、配列内の有効な位置である必要があるため、次を使用する必要があります。

for (int pos = 0; pos + 3 < array.size(); pos += 4)
于 2012-11-21T16:14:33.787 に答える
2

問題は、位置8で配列にアクセスしようとすることです。サイズが8の場合、配列が0から7まで満たされていることを意味します。

于 2012-11-21T16:14:52.523 に答える