大家好,有人可以告诉我这是什么意思吗?我正在为保龄球游戏编写程序,并且程序编译时没有错误,但是当我运行该程序时,代码的这一部分会突出显示并显示错误:java.lang.ArrayIndexOutOfBoundsException:-1
这是我的代码:
if(rolls[i]+rolls[i+1] == 10) {
total = rolls[i]+rolls[i+1];
isSpare = true;
}
编辑:这是整个for循环:
for (int i = 0; i < rolls.length; i += 2) {
isStrike = false;
isSpare = false;
lastFrame = false;
if (i == rolls.length - 3) {
System.out.println("FINAL FRAME");
lastFrame = true;
total = rolls[i] + rolls[i + 1] + rolls[i + 2];
frame[0] = rolls[i];
frame[1] = rolls[i + 1];
frame[2] = rolls[i + 2];
}
if (rolls[i] == 10) {
total = rolls[i];
frame[0] = rolls[i];
isStrike = true;
i -= 1;
} else {
total = rolls[i] + rolls[i + 1];
frame[0] = rolls[i];
frame[1] = rolls[i + 1];
}
if (rolls[i] + rolls[i + 1] == 10) {
total = rolls[i] + rolls[i + 1];
isSpare = true;
}
runningTotal = runningTotal + total;
printFrame(frame, isStrike, isSpare, lastFrame, frames, runningTotal);
frames++;
} //increment
System.out.println();
}
最佳答案
if(rolls[i]==10){
total=rolls[i];
frame[0]=rolls[i];
isStrike=true;
i-=1;
}
在您的第一次迭代中,如果rolls [0]恰好是10,则将i减1使其变为-1。然后,下一个if语句将引发Exception。