java - 数组越界异常保龄球示例

标签 java

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

关于java - 数组越界异常保龄球示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36503119/

相关文章:

Java 接口(interface)/比较器

java - java中类层次结构中的类是如何初始化的?

java - 使用 DefaultListCellRenderer 将图标渲染到 JList 的右侧

java - 如果e(jx)clipse插件不起作用怎么办?

Java Swing ;在 if 语句或 do-while 语句之间选择?

java - maven-deploy-plugin 无法部署 Artifact : ReasonPhrase: . - 无原因短语

java - 无法弄清楚如何检索 map 中的对象

java - 避免在 Java 中缓存未命中

java - 使用 Jython 在 Spring Boot 应用程序中包含 Python 脚本失败 - 找不到模块

Java 树选择问题