Javascript 用循环替换条件语句

Javascript 用循环替换条件语句,javascript,Javascript,我正在尝试制作一个猜测游戏,生成一个用户猜测的随机数。这个猜谜游戏必须使用某种循环。现在,它包含在一个函数中,当用户单击按钮时调用该函数,以及一个限制用户猜测次数的布尔值 据我所知,循环在满足条件之前不会停止运行。如果在这种情况下有一个循环,那么最终的输出将是循环的最后一次迭代。numgueses的值为6,因为循环停止时为6。如何用循环替换条件,使其仍能工作 //Declare variables and constants var guessesLeft;

我正在尝试制作一个猜测游戏,生成一个用户猜测的随机数。这个猜谜游戏必须使用某种循环。现在,它包含在一个函数中,当用户单击按钮时调用该函数,以及一个限制用户猜测次数的布尔值

据我所知,循环在满足条件之前不会停止运行。如果在这种情况下有一个循环,那么最终的输出将是循环的最后一次迭代。numgueses的值为6,因为循环停止时为6。如何用循环替换条件,使其仍能工作

//Declare variables and constants 
var guessesLeft;                               //number of guesses the user has left
var userGuess;                                //user's guess
var highLimit = 1000;                         //high parameter
var numGuesses = 1;                           //number of guesess the user has guessed
var allowedGuesses = 6;                      //number of allowed guesses
var NL = "\n";                               //new line

    //function to be called when the user presses Submit Guess
    function guessingGame() { 
        //random number that is generated
        var randNum = Math.floor(Math.random() * highLimit + 1); 
        if (numGuesses <= allowedGuesses) { 
        userGuess = prompt("Enter a number between 1 and " + highLimit + ": " , "")
        userGuess = parseInt(userGuess);
        guessesLeft = (allowedGuesses - numGuesses) + " guesses left.";
            //If userGuess is in the specified parameters
            //If userGuess is larger than 1 and smaller than the higher parameter
            if ((userGuess > 1) && (userGuess < highLimit)) {

                //If userGuess does not equal randNum
                if (userGuess !== randNum) {

                    //If userGuess is too low
                    if (userGuess < randNum) {
                        //output 
                        document.numForm.gameResults.value = "You guessed too low! Please guess again. " + NL + "Your current number of guesses: " + numGuesses + NL + "You have " + guessesLeft;
                    }
                    //If userGuess is too high
                    else if (userGuess > randNum) {
                        document.numForm.gameResults.value = "You guessed too high! Please guess again. " + NL + "Your current number of guesses: " + numGuesses + NL + "You have " + guessesLeft;
                    }//end if                      
                }
                else {
                    //If userGuess is correct
                    document.numForm.gameResults.value = "You guessed correctly!";
                }//end if
            }

            else {
                document.numForm.gameResults.value =  "Your guess was out of the specified parameters. Please try again. " + NL + "Your current number of guesses: " + numGuesses + NL + "You currently have " + guessesLeft;
                    //user may have entered their guess wrong
                    numGuesses--;
            }//end if 
            //add to number of guesses so the program stops when it reaches the allowed number
            numGuesses++;
        }//end outer if statement
        return false;
    }//end guessingGame()
//声明变量和常量
var猜测左//用户剩余的猜测次数
var-userGuess//用户猜测
var上限=1000//高参数
var numGuesses=1//用户猜测的来宾数
var Allowequesses=6//允许猜测的次数
var NL=“\n”//新线
//用户按Submit Guess时要调用的函数
函数guessingGame(){
//生成的随机数
var randNum=Math.floor(Math.random()*上限+1);
if(numguess1)&(userGuessrandNum){
document.numForm.gameResults.value=“你猜得太高了!请再猜一次。”+NL+“你当前的猜测次数:”+numguesss+NL+“你还有”+guessleft;
}//如果结束
}
否则{
//如果userGuess是正确的
document.numForm.gameResults.value=“你猜对了!”;
}//如果结束
}
否则{
document.numForm.gameResults.value=“您的猜测超出了指定的参数范围。请重试。“+NL+”您当前的猜测次数:“+numguesss+NL+”您当前还有“+guessleft;
//用户可能输入了错误的猜测
裸体--;
}//如果结束
//增加猜测次数,使程序在达到允许的次数时停止
numGuesses++;
}//结束外部if语句
返回false;
}//结束猜谜游戏()

听起来问题语句希望您阻止等待用户输入,而不是触发响应DOM事件的函数

看看

将其放入循环将阻止循环,直到用户响应。

使用
prompt()
do{}while()
循环所建议的
prompt()

var minNumber=1;
var maxNumber=2;
var Guessleft=3;
var numbertobeguesed=minNumber+
(Math.random()*(maxNumber-minNumber+1)| 0);
var成功;
var消息='猜测';
做{
如果(提示(消息)=numberToBeguesed){
警报('正确,数字为'+numberToBeGuessed);
成功=真;
}否则{
猜左——;
消息='重试',+
猜左+
'猜'+(猜左>1?'es':'')+
"左",;
}

}(!successed&&guessleft)
Hi,您能详细介绍一下您希望游戏如何运行,即如何玩游戏吗。你的代码足够简洁,你的解释也很好。。但我正在努力理解这个目标。