我已经包含了我今天制作的codeacademy错误的截图图片。我正在尝试创建一个比较函数,随机选择0到1之间的数字(纸张,剪刀或摇滚),输入两个选项并根据choice1与choice2的比较返回获胜者。
第一部分是评论,但它解释了原始剪纸摇滚功能是如何构建的
以下是代码:
/*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";
}*/
var compare = function (choice1, choice2) {if (choice1 === choice2) return("The result is a tie!");
if (choice1 < 0.34)
if(choice2 ==="scissors");
return("rock wins");
} else if(choice2 ==="paper");{
return("paper wins");
};
};
它告诉我第15行还有一个意外的令牌(else if line)
当我擦除else部分时,它给了我另一个语法错误,说明了令牌的相同内容。我停留在语法的哪一部分关闭以及如何解决它。
答案 0 :(得分:0)
我觉得它与===
和;
语句之后的if()
有关,无论哪种方式,这都是比较它们的更好方法。
function compare(a,b)
{
if(a==b)return "draw";
switch(a)
{
case "rock":return (b=="scissors"?a:b)+" wins";
case "paper":return (b=="rock"?a:b)+" wins";
case "scissors":return (b=="paper"?a:b)+" wins";
}
}
console.log(compare("scissors","paper"));
答案 1 :(得分:0)
检查下面有关分号相关错误的评论。
var compare = function (choice1, choice2) {
if (choice1 === choice2) return("The result is a tie!");
if (choice1 < 0.34) {
if(choice2 === "scissors") { // remove ; here
return("rock wins");
} else if (choice2 === "paper") { // remove ; here
return("paper wins");
} // remove ; here
} // add another else => what happens when choice1 >= 0.34 (not a rock)
};
使用所需的else
块,完整的函数将如下所示:
var compare = function (choice1, choice2) {
if (choice1 === choice2) return("The result is a tie!");
if (choice1 < 0.34) { // rock
if(choice2 === "scissors") {
return("rock wins");
} else if (choice2 === "paper") {
return("paper wins");
}
} else if (choice <= 0.67) { // paper
if(choice2 === "rock") {
return("paper wins");
} else if (choice2 === "scissors") {
return("scissors wins");
}
} else { // scissors
if(choice2 === "paper") {
return("scissors wins");
} else if (choice2 === "rock") {
return("rock wins");
}
}
};
修改强>
这只是为了帮助你克服分号的混淆,如果有的话。通常,函数定义不需要在其主体完成后通过放置最后一个大括号;
来获得}
。
function compare (choice1, choice2) {
// ...
}
相反,当我们为变量赋值时,语句以分号结束。
var name = "John Doe";
因此,当我们将两者结合起来时,我们定义一个函数,然后在赋值语句中使用它,需要使用分号来关闭它。因此,语法:
var compare = function (choice2, choice2) {
// ...
};
答案 2 :(得分:0)
function compare(choice1, choice2) {
if (choice1 === choice2) {
return "The result is a tie!";
}
if (choice1 < 0.34) {
if (choice2 === "scissors") {
return "rock wins";
} else if (choice2 === "paper") {
return "paper wins";
}
}
}