我正在使用Codecademy,我正在制作摇滚,纸张和剪刀游戏。它一直说我有一个语法错误,因为"意外的令牌#34;。看看我的代码:
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!";
}
}
}
}
答案 0 :(得分:3)
你有一个if块,如下所示:
if (choice2 === "scissors") {
...
} else {
...
} else if (choice1 === "paper") {
...
}
else if
只能在else
之前,而不能在之后。
使用一致的缩进会使这类问题更加清晰,以下是在http://jsbeautifier.org/
格式化程序中运行代码之后的代码 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!";
}
}
}
}
这里再次进行格式化,使choice1 ===
行全部处于功能级别,这样可以更容易地查看结构并减少嵌套。
var compare = function(choice1, choice2) {
if (choice1 === choice2) {
return "The result is a tie!";
}
if (choice1 === "rock") {
if (choice2 === "scissors") {
return "rock wins!";
} else {
return "paper wins!";
}
}
if (choice1 === "paper") {
if (choice2 === "rock") {
return "paper wins!";
} else {
return "scissors wins!";
}
}
}
答案 1 :(得分:1)
您在return ("paper wins!");
处使用了包含return语句的括号。请删除()
。
此外,在第一个else-if和second else-if之前,你有一个错误的括号数。
请先关闭其他 - 如果使用花括号}
并从底部删除一个多余的。这是导致错误的主要原因!
答案 2 :(得分:0)
你的卷曲括号似乎错了。