剪刀石头布游戏错误,Javascript

Rock Paper Scissors Game Error, 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);

嗯。

您在第 25 行左右结束比较函数,然后启动另一个 else。所以这不好,但它只是一个重复的大括号,所以当删除它时我们仍然会得到错误。这是因为您在 else.

之后调用 else if

当我们将 else 移动到 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/