2016-01-26 158 views
-1

我正在學習如何在codeacademy.com上編程,並且我已經在那裏尋求幫助,但我沒有得到正確答案。 這次演習是要建立一個「石頭,剪子,布」的遊戲(6如果選擇1是什麼石頭?)這是我的代碼:這段代碼有什麼問題? (JavaScript)

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

它總是說「語法錯誤:輸入意外結束」。 我得到的答案是:「as @name提到你需要關閉函數,或者在這種情況下,如果在函數之前,則是else。」

但它仍然不起作用。

+1

嘗試用塊寫你的代碼塊,然後檢查**每次小改動**之後它是否仍然有效。這樣你就可以知道有什麼確切的變化破壞了它。立刻寫一段破碎的代碼,然後猜測爲什麼它不對,不會很快導致你成功。 – zerkms

+3

你最後缺少一個'}';看看縮進,並注意你沒有回到最後一行的最左邊。 – RobIII

+0

除了其他人說的話,如果你在你的代碼中計算開頭的'{'括號,你會發現有5個,但只有4個關閉的括號。所以你需要找出丟失的'}'應該去的地方。 – nnnnnn

回答

3

你缺少你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"; 
     } 
    } 
}; 
0

由於mikeyq6 aswered,你缺少一個右括號。您可以使用http://jshint.com/來檢查您的語法。我建議在每次出現語法錯誤時使用jshint。