其他意外的令牌,不是if语句后面的分号

时间:2015-04-01 01:14:19

标签: javascript if-statement

尝试编写一个石头剪刀游戏,使用codecademy来学习。我见过很多人都在谈论这个错误,这与在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";
        }
    else if(choice1 === "paper") {  
        if (choice2 === "rock") {
            return "paper wins";
        }
        else {
            return "scissors wins";
        }
    }
};
}

2 个答案:

答案 0 :(得分:0)

尝试删除代码末尾的}(第21行),然后将其放在第12行。

固定代码:

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

答案 1 :(得分:0)

您在第二个}声明之前错过了右括号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";
        }
    }
    else if(choice1 === "paper") {  
        if (choice2 === "rock") {
            return "paper wins";
        }
        else {
            return "scissors wins";
        }
    }    
}