You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建游戏最低分追踪器?Java游戏最低分判定异常怎么修复

问题成因
  • 核心问题是lowestScore变量的作用域设置错误:你将该变量定义在了每次对局结算的方法内部,导致每局结算时都会重新初始化该变量,上一局更新的最低分无法保留到下一局的判断逻辑中,也就出现了第二次得分比第一次高还会触发新最低分提示的问题。
  • 初始值设置错误:你贴出的代码中lowestScore初始值设为0完全不符合需求,游戏得分范围是0~80,初始值设为0会导致除了0分之外的所有得分都不会触发新最低分判断,和你给出的测试现象不符,推测你实际运行的代码初始值设置为了大于80的数值,这个问题也需要一并修正。
修复方案

修复逻辑

  1. 将lowestScore的定义移到对局结算方法外部,作为类成员变量,保证多局之间的数值可以持久化保存,不会每局重置。
  2. 把lowestScore初始值设为81,匹配0~80的得分范围,保证首次对局的有效得分一定可以正确触发新最低分判断。
  3. 优化输出逻辑,把公共的得分输出部分合并,避免重复代码,降低后续维护出错概率。

修复后代码

// 定义为类成员变量,不要放在结算方法内部
int lowestScore = 81;

// 每次对局结算的逻辑
public void settleScore(int currentScore) {
    boolean isNewLow = currentScore < lowestScore;
    if (isNewLow) {
        lowestScore = currentScore;
    }
    // 统一输出逻辑
    System.out.println("Score = " + currentScore + (isNewLow ? "  NEW LOW SCORE!" : ""));
    System.out.println("Lowest Score = " + lowestScore);
}

内容的提问来源于stack exchange,提问作者Jene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:36:04