2015-04-01 79 views
1

试图写一个岩石纸剪刀游戏,使用codecademy学习。我已经看到很多人在谈论这个错误,它与if语句后面使用分号有关,但我不知道我是否完全错过了某些东西,或者它是不同的东西。下面的代码,这是一个有点怪异理解(并至少对我来说),但希望你会明白我没有意外的记号其他,不是分号后如果语句

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"; 
     } 
    } 
}; 
} 
+1

检查您的括号。 – user2357112 2015-04-01 01:15:28

+0

这在这种情况下并不是非常有用,因为我对Javascript非常陌生,大括号让我感到困惑,因为我现在还不熟悉Javascript – Axoda 2015-04-01 01:19:53

+0

尚未完成,我需要为此添加另一个声明,这看起来似乎有点混乱我在分钟 – Axoda 2015-04-01 01:20:36

回答

0

试着在你的代码的最后取出}(21号线)和请将它放在第12行。

固定码:

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

哦,那工作,谢谢!大括号真的开始混淆我整个if-ception类型的东西,所以非常感谢! – Axoda 2015-04-01 01:22:51

+0

它说我需要等待一个这样做,但应该做的 - 快速脱离标记回答并纠正:) – Axoda 2015-04-01 01:25:08

0

你缺少一个右括号}你的第二个else if语句之前,你必须靠近你的代码的最后一个多余的。

固定码:

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

是的,这就是我被告知。谢谢你的纠正!它正在工作 – Axoda 2015-04-01 01:23:51