我通过代码学院学习JavaScript,目前正在创建一个简单的摇滚,纸张,剪刀游戏。但是,我被一个小错误消息所困扰,该消息说有一个意外的关键字:else。我已经梳理了几十次这么小的代码,但似乎无法找到错误,所以我想也许一双新眼睛就能找到我做错了。
var compare = function(choice1, choice2) {
if(choice1 === choice2) {
return "The result is a tie!";
}
else if (choice1 === "rock"){
if (choice2 === "scissors"){
return "rock wins";
}
else {
return "paper wins";
}
}
else if (choice1 === "paper");
{
if (choice2 === "rock"){
return "paper wins";
}
else {
return "scissors wins";
}
}
else if (choice1 === "scissors");
{
if (choice2 === "rock"){
return "rock wins";
}
else {
return "scissors wins":
}
}
};
答案 0 :(得分:3)
在那里删除分号:
else if (choice1 === "scissors");
请正常缩进你的代码。
答案 1 :(得分:1)
不要在if表达式后添加分号:
if (choice1 === "paper");
分号表示声明的结束。
此外,更好的方法是使用开关
switch (choice1) {
case choice2:
return "tie";
case "rock":
return choice2 === "scissors" ? "rock wins" : "paper wins";
case "paper":
return choice2 === "rock" ? "paper wins" : "scissors wins";
case "scissors":
return choice2 === "rock" ? "rock wins" : "scissors wins";
}
当您需要将变量与几个不同的值进行比较时,开关语句是一种很好的编码方式。
返回选择2 ===“摇滚”? “摇滚胜利”:“剪刀获胜”; 是一个三元语句,用于评估 choice2 ===“rock”,如果是,则返回“摇滚胜利”,否则,它将返回“剪刀胜利”。
答案 2 :(得分:-1)
此外,在最终的return语句中将完整冒号更改为半冒号。