AFAIK,如果没有提供大括号“if”块,则其中仅考虑 1 个语句。例如
if(..)
statement_1;
statement_2;
不考虑选项卡,仅statement_1
在if
块内考虑。
以下代码与此不符:
int main ()
{
if(false) // outer - if
if(false) // nested - if
cout << "false false\n";
else if(true)
cout << "true\n";
}
上面的代码不打印任何东西。它应该已经打印出来了"true"
。
它似乎else if
自动嵌套在外部 if
块内。g++ -Wall
发出警告,但这不是这里的问题。放置花括号后,一切都会按预期进行。