JavaScript while循环简单JS

时间:2018-01-16 19:43:14

标签: javascript

我有一个问题。我已经在Udemy上开始了这个关于JavaScript的课程,我们到了#34;而#34;循环。现在我得到了循环所做的事情,我试图创建一个简单的数字猜谜游戏,但事情又回击了我。

以下是代码:

var num = Number(prompt("What is the secret number?"));

while(num !== 354){
    var num = prompt("Guess the number!!!");
}
    alert("Correct number!!");

我在var中尝试过没有Number(),我尝试使用if和else,但它没有用。我的意思是它有效,但是当我键入任何数字时它会给我"猜数字!!!"信息,但当我输入数字" 354"它给了我相同的信息。现在这不是一个项目,只是运动,但不明白......

先谢谢你们

3 个答案:

答案 0 :(得分:1)

这是数据类型问题。具体来说,您的输入仍然捕获字符串,而while循环期望有效的类型数字。

确保您的数据类型总是在这种情况下所需的简单方法是parseInt()

其他方法:

投射:使用Number()功能。注意:这对字符串有一些限制,特别是空格。

parseFloat():这将采用一个参数并吐出Float值。

我将其添加到num

中的while()变量中

var num = Number(prompt("What is the secret number?"));

while(parseInt(num) !== 354){
    var num = prompt("Guess the number!!!");
}
    alert("Correct number!!");

答案 1 :(得分:0)

用类型转换替换严格的比较。这样,您的比较可以捕获数字和字符串数据类型。

另外,你真的不需要在循环体中重新声明你的变量,那么你可以安全地省略var

var num = prompt("What is the secret number?");

while(num != 354){
    num = prompt("Guess the number!!!");
}

alert("Correct number!!");

答案 2 :(得分:-1)

此代码正常工作(我使用了相似的和编辑过的),但那个不是,区别在于:



    var answer = Number(prompt("What is the secret number?"));

    while(answer !== 354){
        var answer = prompt("Guess the number!!!");
    }

    alert("Yay, we made it!!!");