大家好,有人可以告诉我这是什么意思吗?我正在为保龄球游戏编写程序,并且程序编译时没有错误,但是当我运行该程序时,代码的这一部分会突出显示并显示错误: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。

10-07 13:39