0

我面临问题。当我在数组中输入 8 个值时,我可以使用 array.size() 确认数组的大小为 8,但是当我调用以下循环时,它会给我出站异常。我在一个循环周期中遍历 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 回答