我正面临着问题。当我在数组中输入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));
}请帮帮忙
发布于 2012-11-22 00:14:34
您的数组大小为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-22 00:14:53
问题是你试图访问8号位置的数组,如果大小是8,这意味着数组的填充范围是从0到7。
https://stackoverflow.com/questions/13497321
复制相似问题