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

如何在Java猜数字程序中实现循环接收用户输入?

Java猜数字程序循环输入修复方案

原程序的核心问题是缺少循环逻辑,仅执行了一次输入判断。以下是修改后的完整代码,实现持续接收用户输入直到猜中正确数值:

import java.util.Scanner;

class GuessNumber {
    // 生成指定范围内的随机数
    public int getRandomNumber(int min, int max) {
        return (int) ((Math.random() * (max - min)) + min);
    }

    // 根据猜测结果给出提示
    public void giveHint(int guess, int target) {
        if (guess < target) {
            System.out.println("选更大的数字");
        } else if (guess > target) {
            System.out.println("选更小的数字");
        }
    }

    // 返回猜中提示
    public String getCorrectMessage() {
        return "猜对了!";
    }
}

public class GuessTheNumber {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        GuessNumber game = new GuessNumber();

        // 先获取范围,生成目标数字
        System.out.println("请输入最小值和最大值:");
        int min = sc.nextInt();
        int max = sc.nextInt();
        int target = game.getRandomNumber(min, max);
        // 可选:注释掉下面这行,隐藏目标数字让用户真的猜
        // System.out.println("目标数字:" + target);

        int guess;
        // 循环接收输入直到猜中
        do {
            System.out.println("请输入你的猜测:");
            guess = sc.nextInt();
            game.giveHint(guess, target);
        } while (guess != target);

        // 猜中后输出提示
        System.out.println(game.getCorrectMessage());
        sc.close();
    }
}

关键修改说明

  • 调整输入流程:先让用户输入范围,生成目标随机数后再开始猜测,符合正常游戏逻辑。
  • 添加do-while循环:保证至少执行一次猜测,每次循环接收新的输入,直到猜测值等于目标值才退出循环。
  • 优化方法职责:将原userinput方法改为giveHint,专注于输出提示信息,不再返回冗余字符串;方法和类名遵循Java大驼峰命名规范。
  • 资源清理:最后调用sc.close()关闭Scanner,避免资源泄漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 13:03:23