我有一个包含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];
}
答案 0 :(得分:2)
当您将ArrayIndexOutOfBoundsException
更改为i
时,您收到facts.length
,因为有效的数组索引范围从0
到facts.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;