Java两位数随机猜数游戏健壮版开发技术咨询
健壮版两位数猜数字游戏实现
嘿,我帮你把这段代码整理完善了,补全了未完成的部分,还加了输入校验等健壮性处理,让游戏更稳定易用:
import static java.lang.System.*; import java.util.*; public class RandomNumberGuessing { public static Scanner scan = new Scanner(in); public static void main(String args[]) { Random generator = new Random(); int Low = 10; int High = 99; // 生成10-99之间的随机两位数(修正原代码边界问题,确保能生成99) int answer = generator.nextInt(High - Low + 1) + Low; // 用整除和取余拆分十位、个位,比字符串转换更高效 int answerFirstDigit = answer / 10; int answerSecondDigit = answer % 10; out.println("欢迎来到两位数猜数字游戏!"); out.println("我已经生成了一个10到99之间的随机数,快来猜猜看吧!"); while (true) { out.print("请输入你的猜测:"); // 校验输入是否为有效整数,避免非法输入崩溃 if (!scan.hasNextInt()) { out.println("请输入有效的数字哦!"); scan.next(); // 清空无效输入缓存 continue; } int guess = scan.nextInt(); // 校验输入是否在规定范围内 if (guess < Low || guess > High) { out.println("请输入10到99之间的两位数!"); continue; } // 拆分猜测数字的十位和个位 int guessFirstDigit = guess / 10; int guessSecondDigit = guess % 10; // 判断猜测结果并给出反馈 if (guess == answer) { out.println("恭喜你!猜对了!答案就是" + answer); break; } else { StringBuilder hint = new StringBuilder(); if (guessFirstDigit == answerFirstDigit) { hint.append("十位数字猜对了!"); } if (guessSecondDigit == answerSecondDigit) { hint.append("个位数字猜对了!"); } if (hint.length() == 0) { hint.append("十位和个位数字都不对哦"); } hint.append(" 你猜的数字比答案").append(guess > answer ? "大" : "小").append("。"); out.println(hint); } } scan.close(); } }
核心优化点说明:
- 修复随机数边界:原代码
High - Low会导致无法生成99,改成High - Low + 1确保覆盖所有两位数 - 高效数字拆分:用数学运算替代字符串转换,性能更优
- 输入健壮性处理:拦截非整数、超出范围的输入,避免程序异常终止
- 友好反馈机制:根据猜测结果给出精准提示,提升游戏体验
内容的提问来源于stack exchange,提问作者mdeligt_
相关产品推荐
相关产品推荐

