Javascript逻辑缺失

时间:2020-06-15 20:19:56

标签: javascript loops variables conditional-statements

我是这个编码世界的新手,正在学习Java语言作为第一语言。到目前为止,我正在巩固自己的JavaScript技能。我的问题是我的代码中缺少什么。.也许不是完整答案的指针会有所帮助

我的代码的目的仅仅是从最终用户那里获取输入,并且如果用户输入与我存储在我的number_to_guess变量中的值相匹配,则输出应该是“做得好聪明的驴子”,否则请再试一次3/4次尝试

“请重试”是我遇到麻烦的地方,循环只会发生一次。

let number_of_guesses = 0
let number_to_guess = 50
let limit = 4
let guess = prompt("enter a guess")

while (guess != number_to_guess) {
    if (guess != number_to_guess) {
        guess = prompt("enter another guess")
        number_of_guesses = number_of_guesses + 1
    } else {
        console.log("you smart ass")
    }
}

if (number_of_guesses === limit) {
    console.log("you have run out goes")
}

4 个答案:

答案 0 :(得分:0)

问题是您的while循环条件。您有while (guess!=number_to_guess);。由于使用了分号,因此可以有效地缩短带有空主体的while循环。这就是循环不正确运行的原因。请尝试以下操作:

let number_of_guesses = 0; 
let number_to_guess = 50;  
let limit = 4; 
let guess = prompt("enter a guess");

while (guess !== parseInt(number_to_guess) && number_of_guesses < limit) {
  guess = prompt("enter another guess");
  number_of_guesses++;
}

if(number_of_guesses===limit) {   
  console.log("you have run out goes");
}
else {
  console.log("you smart ass");
}

答案 1 :(得分:0)

可能是一种更好的方法,而无需while循环。这使用了递归,是解决该问题的更有效的方法。

let number_of_guesses = 0 
let number_to_guess = 50  
let limit = 4 

const guess = () => {
    let userGuess = prompt("enter a guess")
    if(parseInt(userGuess) !== number_to_guess){
        number_of_guesses++
        if(number_of_guesses < limit){
            guess()
        } else {
            console.log("you have run out goes")
        }
    } else {
        console.log("you smart ass") 
    }
}
guess()


答案 2 :(得分:0)

您真的很亲近,而while循环遇到了问题:

let number_of_guesses = 0;
let number_to_guess = 50;
let limit = 4;
let guess = prompt("Guess A Number");

while (guess != number_to_guess && number_of_guesses < limit) {

    var remaining = limit - number_of_guesses;

    if (remaining == 1)
        guess = prompt(`Guess Again (Last Chance)`);
    else
        guess = prompt(`Guess Again (${remaining} Tries Remaining)`);

    number_of_guesses = number_of_guesses + 1;

    if (guess == number_to_guess)
        alert("Correct!");
    else if (number_of_guesses == limit)
        alert("Too Many Tries...");
}

答案 3 :(得分:0)

let number_of_guesses = 0
let number_to_guess = 50
let limit = 3
let guess = prompt("enter a guess")

while (guess != number_to_guess && number_of_guesses<limit) {
   var remaining = limit - number_of_guesses;
    if (guess != number_to_guess) {
        guess = prompt("enter another guess" + remaining)
        number_of_guesses = number_of_guesses + 1
    } 
}

if (number_of_guesses === limit) {
    console.log("you have run out goes")
} else if (guess=number_to_guess) {
  console.log("well done you smarty")
}