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

Java高低猜数游戏中if-else if分支无法触发的问题排查

问题分析与修复

你的代码核心问题是高低判断逻辑完全搞反了,导致猜对的情况反而触发输的提示:

  • 当number > result时,意味着新数字result比初始数字number小,用户猜"l"(低)才是正确的,但你写的是猜"h"(高)才算赢。
  • 当number < result时,新数字result比初始数字number大,用户猜"h"(高)才对,你却写成猜"l"(低)赢。

另外最后一个else if (number == result)可以简化成else,因为前面已经排除了大于和小于的情况,剩下的必然是相等。

修正后的代码如下:

if (number > result) {
    // 新数字更小,猜"l"赢
    if (guess.equalsIgnoreCase("l")) {
        System.out.println("You win!");
        money += wage + 3;
        return money;
    }
} else if (number < result) {
    // 新数字更大,猜"h"赢
    if (guess.equalsIgnoreCase("h")) {
        System.out.println("You win!");
        money += wage + 3;
        return money;
    }
} else {
    // 数字相等,猜"e"中大奖
    if (guess.equalsIgnoreCase("e")) {
        System.out.println("JACKPOT!!");
        money = wage * 2;
        return money;
    }
}
System.out.println("Oops, you lost."); // 修正原代码拼写错误:your → you
return money;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:52:53