JavaScript while循环简单JS

JavaScript while循环简单JS,javascript,Javascript,我有个问题。我在Udemy for JavaScript上开始了这门课程,我们学习了“while”循环。现在我明白了while循环的作用,我试着创建一个简单的数字猜测游戏,但这件事却反过来攻击了我 代码如下: var num = Number(prompt("What is the secret number?")); while(num !== 354){ var num = prompt("Guess the number!!!"); } alert("Correct nu

我有个问题。我在Udemy for JavaScript上开始了这门课程,我们学习了“while”循环。现在我明白了while循环的作用,我试着创建一个简单的数字猜测游戏,但这件事却反过来攻击了我

代码如下:

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”时,它会给我相同的信息。现在这不是一个项目,只是练习,但不明白


提前感谢各位

这是一个数据类型问题。具体来说,您的输入仍在捕获字符串,而while循环需要有效的类型号

在这种情况下,确保数据类型始终满足您需要的简单方法是
parseInt()

其他方法:

铸造:使用功能。注意:对于字符串,尤其是空格,这有一些限制

:这将获取一个参数并输出浮点值

我将其添加到
while()中的
num
变量中

var num=Number(提示(“密码是什么?”);
while(parseInt(num)!=354){
var num=提示(“猜数字!!!”;
}

警报(“正确的号码!!”将严格比较替换为类型转换比较。通过这种方式,比较可以捕获数字和字符串数据类型

此外,您实际上不需要在循环体中重新声明变量,您可以安全地省略那里的
var

var num=prompt(“密码是什么?”);
while(num!=354){
num=提示(“猜数字!!!”;
}
警报(“正确的号码!!”此代码正常工作(我使用了类似的代码并对其进行了编辑),但该代码不正常,区别何在:

var-answer=Number(提示(“密码是什么?”);
while(答案=354){
var answer=提示(“猜数字!!!”;
}

警惕(“耶,我们成功了!!!”
你的第二个
num
没有
Number
cast,所以
没有==不起作用(字符串和数字)。所以我应该再添加一个变量,比如:var num=number(提示(“密码是什么?”);var realNum=num;然后是代码的其余部分,但是我应该使用“realNum”而不是“num”?我试试看。TNX第二个“var”也要去掉,它很差form@GoranSovilj
prompt
始终返回字符串。测试
num!='354'
可以。这就是我使用Number()的原因。我仍在开始,但Number()不应该将字符串中的任何内容转换为数字(如果字符串的内容是数字)?使用
parseInt()
->
while(parseInt(num)!==354)
请不要将另一个问题作为您自己问题的答案。对不起,伙计,还是新手。不知道怎么写代码,只能作为答案:(.但是,嘿,我放置的另一个代码,它在工作,它与原始代码相同,但原始代码不工作,这一个是…这一个也不工作。严格的比较运算符
!==
不工作。按照我的回答中的建议,用类型转换比较替换它。
!=
。而且
!=
确实工作了,但是,这个也在工作:
var-answer=Number(提示(“密码是什么?”);而(应答!==354){var-answer=prompt(“猜数字!!!”);}警报(“正确的数字!!!”);
当我选择“num”时,似乎有些事情发生了作为一个变量。我不知道,但是谢谢,你给我的信息是正确的,但这也在某种程度上起作用,因为
!==
它不起作用,我编辑了你的答案来介绍JSFIDLE。试着回答1,然后回答354(这样你实际上至少执行一次内部循环)。变量名与此无关。