首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android中索引8无效,大小为8

android中索引8无效,大小为8
EN

Stack Overflow用户
提问于 2012-11-22 00:08:43
回答 2查看 385关注 0票数 0

我正面临着问题。当我在数组中输入8个值时,我可以使用array.size()确认数组的大小是8,但是当我调用下面的循环时,它会给我出站异常。我在一个循环周期中遍历了4个值。

代码语言:javascript
复制
    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));
    }

请帮帮忙

EN

回答 2

Stack Overflow用户

发布于 2012-11-22 00:14:34

您的数组大小为8,因此索引范围从0到7。在您的循环中,当pos为0时,pos+=3语句将其设置为3,然后将其递增4,这将使其设置为7,当您调用pos+1时,您会得到异常。

我认为这是一个打字错误,并且:

代码语言:javascript
复制
id_array.add(array.get(pos+=3));

应该是

代码语言:javascript
复制
id_array.add(array.get(pos+3));

另外,实际的终止条件是pos+3必须是数组中的有效位置,因此应该使用:

代码语言:javascript
复制
for (int pos = 0; pos + 3 < array.size(); pos += 4)
票数 3
EN

Stack Overflow用户

发布于 2012-11-22 00:14:53

问题是你试图访问8号位置的数组,如果大小是8,这意味着数组的填充范围是从0到7。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13497321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档