明明是 false,为何还会执行?

作者:vkvi 来源:ITPOW(原创) 日期:2008-6-19

今天看到一则程序:

if (expression)
{
    statement1
}
else if (expression2)
{
    statement2
}

明明 expression2 结果是 false,却仍然执行了 statement2,起初还以为其它地方逻辑不对,原来看漏了一个东西,原始程序如下:

if (expression)
{
    statement1
}
else if (expression2);
{
    statement2
}

else if 之后其实多了个分号,造成 statement2 的执行不受条件控制。在密密麻麻的代码中,分号还确实不太引人注意,写下来作为小小经验之谈吧。

相关文章