Javascript:其他令人意外的令牌

时间:2014-08-03 20:18:58

标签: javascript if-statement token

我正在使用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!";

  }
  }
 }
}

3 个答案:

答案 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)

你的卷曲括号似乎错了。