Javascript 为什么在我运行代码时会发生这种情况

Javascript 为什么在我运行代码时会发生这种情况,javascript,if-statement,Javascript,If Statement,嘿,伙计们,只是当我运行这段代码时,我会收到三个警报,分别是“你赢了!”、“这是平局!”和“你输了”,而这些警报应该只有一个。这是一个石头剪刀布游戏代码的哪一部分是错误的我试过了,但找不到它 var userAnswer = prompt("Rock, Paper or Scissor"); var theEnemy; var d = Math.floor(Math.random() * 10 + 1); document.write(d); if(d === 3 || d === 2 |

嘿,伙计们,只是当我运行这段代码时,我会收到三个警报,分别是“你赢了!”、“这是平局!”和“你输了”,而这些警报应该只有一个。这是一个石头剪刀布游戏代码的哪一部分是错误的我试过了,但找不到它

var userAnswer = prompt("Rock, Paper or Scissor");

var theEnemy;
var d = Math.floor(Math.random() * 10 + 1);
document.write(d);


if(d === 3 || d === 2 || d === 1){
 var theEnemy = "Paper"
    if(userAnswer = "Rock"){
    alert("You lost!");
    }
    if(userAnswer = "Paper"){
    alert("it's a tie!");
    }
    if(userAnswer = "Scissor"){
    alert("You won");
    }
}

if(d === 7 || d === 6 || d === 5 || d === 4){
    var theEnemy="Rock";
    if(userAnswer = "Rock"){
    alert("it's a tie!");
    }
    if(userAnswer = "Paper"){
    alert("YOu won!");
    }
    if(userAnswer = "Scissor"){
    alert("You lost!");
    }
}

if(d === 8 || d === 9 || d=== 10){
    var theEnemy="Scissor";
    if(userAnswer = "Rock"){
    alert("You lost!");
    }
    if(userAnswer = "Paper"){
    alert("You won!");
    }
    if(userAnswer = "Scissor"){
    alert("It's a tie");
    }
}

当您正确地使用
==
检查
d
的值时,您使用的是
=
而不是
==
检查
userAnswer
的值

=
将右侧的值分配给左侧的变量

比较运算符(检查操作数的类型和值)

使用
==
进行检查。例如:
userAnswer==“摇滚乐”

var userAnswer=prompt(“石头、纸或剪刀”);
var Thenemy;
var d=数学地板(数学随机()*10+1);
文件编写(d);
如果(d==3 | | d==2 | | d==1){
var theEnemy=“纸张”
如果(userAnswer==“摇滚乐”){
警惕(“你输了!”);
}
如果(用户回答==“纸张”){
警惕(“打成平局!”);
}
if(userAnswer==“剪刀”){
警惕(“你赢了”);
}
}
如果(d==7 | | d==6 | | d==5 | | d==4){
var theEnemy=“岩石”;
如果(userAnswer==“摇滚乐”){
警惕(“打成平局!”);
}
如果(用户回答==“纸张”){
警惕(“你赢了!”);
}
if(userAnswer==“剪刀”){
警惕(“你输了!”);
}
}
如果(d==8 | | d==9 | | d==10){
var theEnemy=“剪刀”;
如果(userAnswer==“摇滚乐”){
警惕(“你输了!”);
}
如果(用户回答==“纸张”){
警惕(“你赢了!”);
}
if(userAnswer==“剪刀”){
警惕(“打成平局”);
}

}
您不是在检查,而是在分配值

if(d === 3 || d === 2 || d === 1){
 var theEnemy = "Paper"
    if(userAnswer == "Rock"){
    alert("You lost!");
    }
    if(userAnswer == "Paper"){
    alert("it's a tie!");
    }
    if(userAnswer == "Scissor"){
    alert("You won");
    }
}

在您应使用检查的if条件中,单个等于用于赋值==

 var userAnswer = prompt("Rock, Paper or Scissor");
 var theEnemy;
 var d = Math.floor(Math.random() * 10 + 1);
 document.write(d);
 if (d === 3 || d === 2 || d === 1) {
 var theEnemy = "Paper"
 if (userAnswer == "Rock") {
     alert("You lost!");
 }
 if (userAnswer == "Paper") {
     alert("it's a tie!");
 }
 if (userAnswer == "Scissor") {
     alert("You won");
 }
   }
if (d === 7 || d === 6 || d === 5 || d === 4) {
 var theEnemy = "Rock";
 if (userAnswer == "Rock") {
     alert("it's a tie!");
 }
 if (userAnswer == "Paper") {
     alert("YOu won!");
 }
 if (userAnswer == "Scissor") {
     alert("You lost!");
 }
}
 if (d === 8 || d === 9 || d === 10) {
 var theEnemy = "Scissor";
 if (userAnswer == "Rock") {
     alert("You lost!");
 }
 if (userAnswer == "Paper") {
     alert("You won!");
 }
 if (userAnswer == "Scissor") {
     alert("It's a tie");
 }
 }

= != == != ===. 你应该调查一下。如果陈述使用==而不是==,那么你正在做所有的助教。当
用户回答
时,“纸”和
敌人
“剪刀”,警报应该是
丢失的
,而不是
赢的