数组无法正确循环 - Java

时间:2016-04-22 20:05:10

标签: java arrays

我有一个包含60个值的数组,当我单击下一个按钮时,它将以升序循环遍历我的数组的所有值,直到数字60,然后它再次从第一个开始。

我也有一个上一个按钮,所以我可以降低值而不是上升。当我点击第一个数组值[0]上的上一个按钮时,我的应用程序崩溃了,我不确定原因。

这是我的代码:

public String nextFact() {
    i++;
    if(i >= facts.length) {
        i = 0;
    }
    return facts[i];
}

public String previousFact() {
    i--;
    if(i < 0) {
        i = facts.length;
    }
    return facts[i];
}

2 个答案:

答案 0 :(得分:2)

当您将ArrayIndexOutOfBoundsException更改为i时,您收到facts.length,因为有效的数组索引范围从0facts.length - 1。将i设为facts.length - 1

if(i < 0) {
    i = facts.length - 1;
}

大于或等于长度的环绕代码应该可以正常工作。

答案 1 :(得分:0)

您的数组大小为array.length。所以最后一个索引是array.length-1。在上一个函数中,将array.length分配给i。这是比数组的最大索引更大的索引,因此它崩溃了。你也必须得到indexoutofbound错误。

您应该用以下内容替换该行:

i = facts.length - 1;