2015-10-13 28 views
1

我一直從控制檯收到此錯誤:剪刀石頭布遊戲錯誤,使用Javascript

SyntaxError: expected expression, got keyword 'else' else if (choice2 === "paper") {

這是我的代碼

var user = prompt("Rock, Paper, Scissors?"); 
var computer = Math.random(); 
if (computer < 0.34) { 
    computer = "rock"; 
} else if (computer <= 0.67) { 
    computer = "paper"; 
} else { 
    computer = "scissors"; 
} console.log("computer: " + computer); 

var compare = function (choice1, choice2) { 

    if (choice1 === choice2) { 
     return "Tie"; 
    } 
else if (choice1 === "rock") { 
    return "Rock wins"; 
} 
else { 
    return "paper wins"; 
} 

} 
else if (choice2 === "paper") { 
    if (choice2 === "rock") { 
     return "paper wins"; 
    } 
    else { 
     return "scissors win"; 
    } 
} 
} 
compare(user, computer); 

回答

1

嘛。

您在第25行左右結束比較功能,然後啓動另一個else。所以這並不好,但它只是一個重複的大括號,所以在刪除它時我們仍然會出現錯誤。這是因爲您在else之後撥打else if

當我們把別人下else if到到並刪除重複的大括號,我們得到了實際運行

var user = prompt("Rock, Paper, Scissors?"); 
var computer = Math.random(); 
if (computer < 0.34) { 
    computer = "rock"; 
} else if (computer <= 0.67) { 
    computer = "paper"; 
} else { 
    computer = "scissors"; 
} 
console.log("computer: " + computer); 

var compare = function(choice1, choice2) { 

    if (choice1 === choice2) { 
     return "Tie"; 
    } else if (choice1 === "rock") { 
     return "Rock wins"; 
    } else if (choice2 === "paper") { 
     if (choice2 === "rock") { 
      return "paper wins"; 
     } else { 
      return "scissors win"; 
     } 
    } else { 
     return "paper wins"; 
    } 
} 
compare(user, computer); 

希望這有助於一些代碼。另外,當您使用工具來美化您的代碼時,它可以更容易地進行調試(請參閱額外的大括號),我使用 - >http://jsbeautifier.org/