如果条件有问题

时间:2011-02-04 16:33:41

标签: javascript

我将此函数称为:calculate(2)

function calculate(flag)
{
   if (flag==1)
   {
   }
   else if (flag==2)
   {  
   }
   else (flag==3)
   {  
   }
}

在我看到的调试器中,它也跳转到else (flag==3)(除了(flag==2))之外的其他地方。 有人可以向我解释一下吗?

感谢 H.Bada

4 个答案:

答案 0 :(得分:6)

请使用{}代码按钮发布您的代码,以便它显示得很好!

您不希望最终else (flag==3)想要else if (flag==3)else

例如

function calculate(flag)
{
   if (flag==1)
   {
   }
   else if (flag==2)
   {  
   }
   else if (flag==3)
   {  
      //this will execute if flag is 3
   }
}

function calculate(flag)
{
   if (flag==1)
   {
   }
   else if (flag==2)
   {  
   }
   else
   {  
        //this will execute if flag is not 1 or 2
   }
}

答案 1 :(得分:1)

您的代码的解释如下:

if (flag == 1)
{
}
else if (flag == 2)
{
}
else
{
    (flag == 3)
}

您可能想要另一个else if声明:

else if (flag == 2)
{
}
else if (flag == 3)
{
}

答案 2 :(得分:0)

正在发生一些事情,您会因语法错误而感到困惑:

 else (flag==3)

else不会采用类似ifelse if的布尔条件。

请参阅@El Ronnoco的帖子了解正确的语法。

答案 3 :(得分:0)

除非检查任何条件所以从您的示例中(flag == 3)被视为您的else块中包含的语句,即 else &该语句之后的所有其他内容都不在if ... else块中。

因此,无论变量标志的值如何,都将执行此后的每个语句。