我将此函数称为:calculate(2)
function calculate(flag)
{
if (flag==1)
{
}
else if (flag==2)
{
}
else (flag==3)
{
}
}
在我看到的调试器中,它也跳转到else (flag==3)
(除了(flag==2))
之外的其他地方。
有人可以向我解释一下吗?
感谢 H.Bada
答案 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
不会采用类似if
和else if
的布尔条件。
请参阅@El Ronnoco的帖子了解正确的语法。
答案 3 :(得分:0)
除非检查任何条件所以从您的示例中(flag == 3)被视为您的else块中包含的语句,即 else &该语句之后的所有其他内容都不在if ... else块中。
因此,无论变量标志的值如何,都将执行此后的每个语句。