2016-09-17 7 views
-2

私はコードアカデミーでJavaScriptを学習しています。現在、シンプルなロック、ペーパー、ハサミのゲームを作成しています。しかし、予期しないキーワードがあるという小さなエラーメッセージが表示されます。私はこの小さなブロックのコードを何十回も梳きましたが、エラーを見つけられないように見えるので、おそらく一組の新しい目が私が間違っていることを見つけることができると思いました。予期せぬエラーで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"; 
      } 
    } 
     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

Btw 'return 'にタイプミスがあります。'; 'は'; 'で終わるべきであり、': 'ではありません。あなたの現在の問題を解決したら、実際にあなたの問題や別の問題を引き起こしているかもしれません。 – rbaleksandar

答えて

-1

さらに、最後のreturn文でコロンをセミコロンに変更します。

+0

ありがとう、クリス –

3

が最後にセミコロンを削除します。

else if (choice1 === "scissors"); 

、通常はあなたのコードをインデントしてください。

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

スイッチを使用することですスイッチ文は、いくつかの異なる値に対して変数を比較する必要があるときにコーディングするための良い方法です。

return choice2 === "rock"? "rock wins": "はさみが勝つ";choice2は===「岩」、それが本当であるならば、それは、それ以外の場合は返され、「岩の勝利」を返します「ハサミが勝つ」と評価文です。

+0

ありがとうございます!私はもはや困惑していません。 –

関連する問題