我有一个包含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];
}

最佳答案

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

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


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

07-26 05:20