JavaScript,用于询问特定答案的循环

JavaScript,用于询问特定答案的循环,javascript,Javascript,我希望用户输入一个介于1-100之间的数字,直到用户输入一个有效的数字,循环才会一直说“输入无效” 我的代码如下。我哪里出错了 // Initialize var userGuess var userGuess; // I want to make the prompt keep asking a number between 1-100, if it doesn't satisfy the requirement, it will keep asking for (var valid = f

我希望用户输入一个介于1-100之间的数字,直到用户输入一个有效的数字,循环才会一直说“输入无效”

我的代码如下。我哪里出错了

// Initialize var userGuess
var userGuess;

// I want to make the prompt keep asking a number between 1-100, if it doesn't satisfy the requirement, it will keep asking
for (var valid = false; valid == true;) {
    userGuess = prompt("Guess a number");
    if ((userGuess >= 1) && (userGuess <= 100)) {
        valid = true;
    } else {
        valid = false;
        console.log("That number is invalid! Please enter a number between 1-100");
    }
}
//初始化变量userGuess
var-userGuess;
//我想让提示符继续询问1-100之间的数字,如果它不满足要求,它将继续询问
for(var valid=false;valid=true;){
userGuess=prompt(“猜一个数字”);
如果((userGuess>=1)&&(userGuess
//初始化变量userGuess
var-userGuess;
//我想让提示符继续询问1-100之间的数字,如果它不满足要求,它将继续询问
var-valid=false;
while(!valid){
userGuess=prompt(“猜一个数字”);
如果((userGuess>=1)&&(userGuess
//初始化变量userGuess
var-userGuess;
//我想让提示符继续询问1-100之间的数字,如果它不满足要求,它将继续询问
var-valid=false;
while(!valid){
userGuess=prompt(“猜一个数字”);

如果((userGuess>=1)和&(userGuess),在您尝试捕获有效用户输入的场景中,我更倾向于使用递归函数调用

function userValue(){
    var guess = prompt("Guess a number")
    if(guess > 0 && guess <= 100){
         return guess; 
    }

    return userValue();
}

var value = userValue();
函数userValue(){
var guess=提示(“猜测一个数字”)

如果(guess>0&&guess在您尝试捕获有效用户输入的场景中,我更倾向于使用递归函数调用

function userValue(){
    var guess = prompt("Guess a number")
    if(guess > 0 && guess <= 100){
         return guess; 
    }

    return userValue();
}

var value = userValue();
函数userValue(){
var guess=提示(“猜测一个数字”)

如果(guess>0&&guess,直到我得到一个具体的答案:在我得到一个具体的答案之前,你根本没有检查这个问题。谢谢rafalio!有没有办法把这个问题变成for循环?我想把这个用于for循环,因为我想尽量避免声明一个全局变量。@user122652 for循环在这是因为您不知道要预先循环多少次。如果您确实坚持使用for循环,我会更新答案。但是while循环更有意义,当您迭代某个对象(例如集合)时,如果您事先知道要迭代多少个对象,请使用for循环。@user122652全局变量s?这是零差异!我想你需要检查范围。我知道我哪里出错了。我所做的条件是错误的!谢谢rafalio!有没有办法把它变成for循环?我想把它用于for循环,因为我想尽量避免声明全局变量。@user122652 for循环在这种情况下没有意义因为您不知道要预先循环多少次。如果您确实坚持使用for循环,我会更新答案。但是while循环更有意义,当您迭代某个对象时,使用for循环,例如,当您预先知道要迭代多少个对象时。@user122652全局变量?有零不同!我想你需要重新审视范围界定。我知道我哪里做错了。我做的条件是错误的!没问题,随时:)没问题,随时:)
function userValue(){
    var guess = prompt("Guess a number")
    if(guess > 0 && guess <= 100){
         return guess; 
    }

    return userValue();
}

var value = userValue();