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

Java项目商店执行/buy Token提示正常但未新增tokens数量异常排查

问题排查结果

1. 执行/buy Token同时输出购买成功和余额不足的原因

你对/buy Token的判断用了两个独立的if语句,没有用else if关联:

  • 当你的账户余额刚好≥1000时,第一个if判断成立,执行扣费逻辑,余额会直接减少1000
  • 扣费完成后程序会继续执行第二个独立的if判断,此时余额已经<1000,第二个判断也成立,就会同时输出两条提示

修复方案:把第二个if改成else if,让两个判断互斥即可:

if (in.equals("/buy Token") && Bank.amount >= 1000) {
    System.out.println("You've successfully bought a Token!");
    Bank.amount = Bank.amount - 1000;
    Tokens.amount = Tokens.amount + 1;
} 
// 改成else if,前面条件满足就不会走这个分支
else if (in.equals("/buy Token") && Bank.amount < 1000) {
    System.out.println("You don't have enough coins to buy a Token!");
}

2. 执行/tokens查询无响应的原因

你调用了Tokens.getAmount()方法,但这个方法只是返回了代币数量,你没有把返回值打印到控制台,自然不会有任何输出。
修复方案:修改/tokens的逻辑,增加打印语句:

if (in.equals("/tokens")) {
    System.out.println("当前代币数量:" + Tokens.getAmount());
}

3. 其他潜在bug提醒

  • Tokens类里的add、del是实例方法,但amount和getAmount()是静态属性/方法,逻辑不统一,后续如果调用实例方法修改代币会有逻辑隐患,建议把add、del也改成静态方法,或者统一改成实例成员
  • 购买BetterFarm、ShorterDelay的逻辑有问题:你设置BetterFarm = true之后没有重置,后续不管用户输入任何指令,都会进入while (BetterFarm)的逻辑,重复触发购买/余额不足提示
  • 输入/shop时会直接new Shop(),会递归创建Shop实例,导致重复弹出商店界面,长时间运行会触发内存溢出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:36:04