Illegal return staement. What if choice1 is scissors?


#1



https://www.codecademy.com/courses/javascript-beginner-en-Bthev-mskY8/1/4?curriculum_id=506324b3a7dffd00020bf661

Syntax eror: illegal return statement

var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
	computerChoice = "rock";
} else if(computerChoice <= 0.67) {
	computerChoice = "paper";
} else {
	computerChoice = "scissors";
} console.log("Computer: " + computerChoice);

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";
    }
}
}
if (choice1 === choice2)
{
    return "The result is a tie!"
}
else if (choice1 === "paper") {
    if (choice2 === "rock") {
        return "paper wins";
    }
    else {
        return "scissors wins";
    }
}
}
if (choice1 === choice2)
{
    return "The result is a tie!";
}
else if (choice1 === "scissors") {
    if (choice2 === "paper") {
        return "scissors wins";
    }
    else {
        return "rock wins";
    }
}
}

compare(userChoice, computerChoice)


#2

your function is closed a bit earlier:

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";
    } /* closes else */
} /* closes else if */
} /* closes function */

see comments. You want all the comparisons to be inside your function, and you only need to check if choice1 equals choice2 once, it is not suddenly going to change. Check all your closing curly brackets, you have too many (even later in your code)