Javascript 我该怎么做?添加无效的输入选项

Javascript 我该怎么做?添加无效的输入选项,javascript,Javascript,我想在我的代码中做一个特性,如果你输入了一个无效的输入,它会说它无效,并会强迫你重复,直到你输入“1”或“2”。这个游戏是关于输入一个介于1和2之间的随机数,如果是正确的数字,龙会以消息的形式给你一个宝藏。如果不是,他会吃掉你,这又是一个信息。到目前为止,我试图做的只是不起作用 这是我迄今为止的代码(javascript): 谢谢你的帮助。提前谢谢。我想这不起作用,因为字符串与整数之间存在严格的比较。您正在接收的person变量是一个字符串,但您正在进行严格的比较,以检查此处的类型: var i

我想在我的代码中做一个特性,如果你输入了一个无效的输入,它会说它无效,并会强迫你重复,直到你输入“1”或“2”。这个游戏是关于输入一个介于1和2之间的随机数,如果是正确的数字,龙会以消息的形式给你一个宝藏。如果不是,他会吃掉你,这又是一个信息。到目前为止,我试图做的只是不起作用

这是我迄今为止的代码(javascript):


谢谢你的帮助。提前谢谢。

我想这不起作用,因为字符串与整数之间存在严格的比较。您正在接收的
person
变量是一个字符串,但您正在进行严格的比较,以检查此处的类型:

var invalid = person !== 1 || person !== 2;
因此,类型转换可能会有所帮助。在
人员
前面使用一元
+
运算符将其转换为整数并进行严格比较,并且它应该是
&
而不是
|

var invalid = +person !== 1 && +person !== 2;
而且,如果它是无效的,就不可能从循环中出来。所以请你也注意这一点。还有,这里有一个
do。。。而
循环更有意义。我已在下面的代码片段中更新了该代码:

alert(“你在一个充满龙的地方,在你面前,你看到两个山洞。在一个山洞里,龙是友好的,会与你分享他的财富。另一条龙贪婪而饥饿,一眼就能吃掉你。”);
警惕(“你接近洞穴”);
警惕(“这是黑暗和恐怖的……”);
var random=Math.floor(Math.random()*2)+1;
做{
var person=prompt(“您将进入哪个洞穴?请键入1或2”);
变量无效=+个人!==1&&+个人!==2;
如果(无效)
警报(“此输入无效”);
}而(无效),;
如果(个人==随机){
警惕(“一条巨龙跳到你面前!它张开嘴……给你一个宝藏,你想再玩一次吗?”);
}否则{
警惕(“一条巨龙跳到你面前!他张开嘴……一口就把你吞下去了!你想再玩一次吗?”);

}
您可以使用while循环,等待用户输入1或2。而且,你每次都要检查,这样会更好

    while (invalid) {
        alert("This input is invalid");
        person = prompt("Which cave will you go into? Please either type 1 or 2");
        invalid = parseInt(person) === 1 || parseInt(person) === 2;
    }
此时,您需要更新无效变量中的值

while (invalid) {
 alert("This input is invalid");
 var person = prompt("Which cave will you go into? Please either type 1 or 2");
 invalid = person !== 1 || person !== 2;
}
我想这会让你继续你的计划


为了更好地解释解决方案。在while循环中获得用户的输入后,由于您从未更新无效变量,因此该循环将永远不会结束


我希望您的程序继续取得进展。

请编辑您的问题,并添加相关的HTML和CSS。无效检查似乎是一个错误<代码>1!==2和
2!==1
。它总是无效的。单个变量不能严格等于两个独立的值。它必须是
&&
而不是
|
欢迎使用堆栈溢出。请看,也要看一遍,以便熟悉如何使用这个平台。@Taplar修复了它。谢谢我不明白你想说什么,现在就明白了。为什么不使用
do..while
循环呢?你可以把提示和有效性检查放进去…@FZs好主意。。。让我更新。@FZs已更新…
x!==1 | | x!==2
始终是正确的,请修复它。现在要么变量person为1要么变量person为2,这并没有解决任何问题。单个值不能严格等于不同的值。如果值为
1
,则该语句为真,因为第一部分为真。如果值为
2
,则该语句将为真,因为第一部分为假,而| |为真,因为第二部分为真。如果值为
3
,则invalid将为false,因为3不是1或2,但这是一个无效值,因为用户希望他们只选择1或2。此外还有类型比较问题。字符串1不是整数1。
x!==1 | | x!==2
始终为真
while (invalid) {
 alert("This input is invalid");
 var person = prompt("Which cave will you go into? Please either type 1 or 2");
}
while (invalid) {
 alert("This input is invalid");
 var person = prompt("Which cave will you go into? Please either type 1 or 2");
 invalid = person !== 1 || person !== 2;
}