求编写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
相关产品推荐
相关产品推荐

