今天看到一则程序:
if (expression)
{
statement1
}
else if (expression2)
{
statement2
}
{
statement1
}
else if (expression2)
{
statement2
}
明明 expression2 结果是 false,却仍然执行了 statement2,起初还以为其它地方逻辑不对,原来看漏了一个东西,原始程序如下:
if (expression)
{
statement1
}
else if (expression2);
{
statement2
}
{
statement1
}
else if (expression2);
{
statement2
}
else if 之后其实多了个分号,造成 statement2 的执行不受条件控制。在密密麻麻的代码中,分号还确实不太引人注意,写下来作为小小经验之谈吧。
