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

求编写JavaScript函数:输入数字后限5次机会猜测其平方值

嘿,我来帮你搞定这个猜数字平方的小游戏!我整理了一个完整且能正常运行的版本,你可以直接用,也能对照看看自己之前的代码哪里出了问题。

完整实现代码
// 获取用户输入的初始数字
const originalNum = prompt("请输入一个数字:");
// 处理用户取消输入或者输入非数字的情况
if (!originalNum || isNaN(parseFloat(originalNum))) {
  alert("请输入有效的数字!");
} else {
  const targetSquare = Math.pow(parseFloat(originalNum), 2);
  let guessCount = 5;

  // 循环进行5次猜测
  while (guessCount > 0) {
    const userGuess = prompt(`你还有${guessCount}次机会,请猜测这个数字的平方值:`);
    
    // 处理用户取消猜测的情况
    if (userGuess === null) {
      alert("你终止了游戏!");
      break;
    }
    
    const guessNum = parseFloat(userGuess);
    // 检查输入是否为有效数字
    if (isNaN(guessNum)) {
      alert("请输入有效的数字!");
      continue; // 不消耗次数,重新让用户输入
    }

    if (guessNum === targetSquare) {
      alert("恭喜你,猜对了!");
      break; // 猜对了直接结束循环
    } else {
      guessCount--;
      if (guessCount > 0) {
        alert("猜测数字错误,请继续尝试!");
      } else {
        alert(`次数用完啦!正确答案是${targetSquare}。`);
      }
    }
  }
}
关键逻辑说明
  • 输入校验:我特意加了对用户输入的校验,不管是初始数字还是猜测值,都处理了用户点击取消、输入非数字的情况,避免程序因为类型不匹配或者空值报错。
  • 次数管理:用guessCount变量跟踪剩余猜测次数,每次错误猜测后递减,直到次数耗尽就结束游戏。
  • 灵活终止循环:不管是用户猜对了、主动取消游戏,还是次数用完,都会及时终止循环,逻辑更严谨。

如果你之前的代码出现问题,大概率是这几个点没处理好:比如没把输入的字符串转成数字(直接拿字符串和数字比较永远不对)、没正确控制循环次数,或者没处理用户取消输入的异常情况,你可以对照上面的代码排查一下~

内容的提问来源于stack exchange,提问作者G. ILL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:57:04