2011-02-04 62 views
0

我调用这个函数是这样的:(除了否则,如果(flag==2))calculate(2)麻烦,如果条件

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

在调试器中我看到,它也给别人跳(flag==3) 有人能解释一下?

感谢 H.Bada

+0

调试器跳到那里,因为这是一个语法错误 – Cameron 2011-02-04 16:36:57

回答

6

请张贴使用{}码按钮,这样好听显示了你的代码!

你不希望你要么需要else if (flag==3)最后else (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

您的代码被这样解释:

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

你可能需要另一个else if声明:

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

有几件事情是怎么回事,你被一个语法错误困惑:

else (flag==3) 

else并不需要像if一个布尔条件和else if呢。

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

0

至于别的不会从你的例子检查任何条件,使(标志== 3)被视为后其他 &一切封闭在你的其他块即第一条语句声明之后话说出来if ... else块。

因此,无论变量标志的值如何,以后的每条语句都会被执行。