2016-09-17 8 views
-2

Ich lerne JavaScript durch Code-Akademie, und bin gerade dabei, ein einfaches Stein, Papier, Schere-Spiel zu erstellen. Ich stehe jedoch auf eine kleine Fehlermeldung, die besagt, dass es ein unerwartetes Schlüsselwort gibt: else. Ich habe diesen kleinen Codeblock Dutzende Male durchforstet, aber ich kann den Fehler nicht finden, also dachte ich mir, vielleicht würden ein paar neue Augen finden, was ich falsch mache.JavaScript-Anfänger stecken auf unerwarteten Fehler

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

Übrigens gibt es einen Tippfehler bei 'return 'Scheren gewinnt':' der sollte mit ';' enden und nicht: '. Es könnte tatsächlich auch Ihr Problem oder ein anderes Problem verursachen, sobald Sie Ihr aktuelles Problem gelöst haben. – rbaleksandar

Antwort

-1

Darüber hinaus ändern Sie den vollständigen Doppelpunkt in Semikolon in der endgültigen Rückgabeanweisung.

+0

danke, Chris –

3

das Semikolon am Ende dort entfernen:

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

Und bitte normalerweise Code einrücken.

1

Legen Semikolons nicht nach dem, wenn Ausdruck:

if (choice1 === "paper"); 

Ein Semikolon zeigt das Ende der Anweisung.

Auch ein besserer Weg, dies zu codieren würde einen Schalter

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

Die Schalter Aussage ist eine schöne Art und Weise zu benutzen, zu codieren, wenn Sie eine Variable mit mehreren unterschiedlichen Werten vergleichen müssen.

Die Rückkehr Wahl2 === "Rock"? "Rock gewinnt": "Schere gewinnt"; ist ein ternären Anweisung, die choice2 wertet === „rock“ und wenn es wahr ist, wird es „Rock gewinnt“, sonst zurückkehren, wird es „Schere gewinnt“ zurück.

+0

danke! Ich bin nicht mehr ratlos. –

Verwandte Themen