1 回答
TA贡献1799条经验 获得超9个赞
当您验证内部猜测的数字时,NumberCheck(...)您不会将生成的“有效”数字分配回变量(因此在循环的下一次迭代中永远不会考虑它。
你需要添加类似的东西ArgValidNum = ValidateGuess(ArgValidNum);
我也去简化了,NumberCheck(...)因为你只比较两个数字:猜测的一个和一开始创建的“随机”。
请参阅下面的演示代码
var GuessedNumber, RandomNum, ValidNum;
RandomNum = 24; //Math.floor((Math.random() * 100) + 1);
GuessedNumber = EnterGuess();
ValidNum = ValidateGuess(GuessedNumber);
NumberCheck(RandomNum, ValidNum);
function EnterGuess() {
return parseFloat(prompt("Please guess a number between 1 and 100"));
}
function ValidateGuess(ArgGuessNum) {
var ArgValidNum;
while (ArgGuessNum < 1 || ArgGuessNum > 100) {
ArgGuessNum = parseFloat(
prompt("Please guess a valid number between 1 and 100")
);
}
if (ArgGuessNum > 0 || ArgGuessNum <= 100) {
ArgValidNum = ArgGuessNum;
return ArgValidNum;
}
console.log("valid number");
}
function NumberCheck(ArgRandomNum, ArgValidNum) {
var ctr = 1;
while (ArgValidNum !== ArgRandomNum) {
if (ArgValidNum > ArgRandomNum) {
ArgValidNum = parseFloat(
prompt("Uh-Oh the number is too high! enter another guess")
);
ArgValidNum = ValidateGuess(ArgValidNum);
} else if (ArgValidNum < ArgRandomNum) {
ArgValidNum = parseFloat(
prompt("Uh-Oh the number is too low! enter another guess")
);
ArgValidNum = ValidateGuess(ArgValidNum);
}
ctr++;
}
alert("you took " + ctr + " guesses");
}
添加回答
举报
