Javascript语法错误 - if / else语句

时间:2014-05-31 09:25:22

标签: javascript if-statement syntax

这是我的第一个问题,如果我的问题没有清楚显示,请道歉。我收到了错误信息' else' if / else语句的一部分。关于代码的大约一半,我已经在我收到错误的行的右侧发表了评论。不知道语法有什么问题。

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")  //GETTING ERROR MESSAGE
     if(choice2==="scissors");
         {return "rock wins";
     }
     else {
         return"paper wins";  //GETTING ERROR MESSAGE
     }
}
else if(choice1==="paper") {   //GETTING ERROR MESSAGE
     if(choice2==="rock"); 
     {
    return "paper wins";
     }
     else {
     return "scissors wins";
     }
}
 else if(choice1==="scissors") {
      if(choice2==="paper")
      return "scissors wins";
 }
      else {
     return "rock wins" }
     }

1 个答案:

答案 0 :(得分:1)

您的代码乱七八糟,其语法和结构错误。例如,这个:

var compare = function(choice1, choice2) {
    if(choice1 === choice2) 
        return "The result is a tie!";
};
else if(choice1==="rock")

您在变量中声明了一个函数,但随后使用else块跟随该声明。 else块需要遵循if块。您不能只使用else 开始语句。从逻辑上讲,这在句法上是没有意义的。它应该是该函数中if块的一部分吗?那你为什么关闭这个功能?这将会破坏它之后的所有内容。

或者这个:

if(choice2==="rock"); 
{
    return "paper wins";
}

为什么在if条件后会出现分号?

我愿意打赌这些花括号在整个代码中也没有正确排列。您肯定希望缩进代码以使其更具人性化,因此您可以按照您正在创建的结构进行操作。分号终止语句,不要只将它们放在任何地方。 if / else块成对出现。

逐步完成你试图表达和构建它的逻辑。此代码使非常不清楚您甚至尝试做什么。