AFAIK,如果没有提供"if"块,那么花括号内部只会考虑1个语句.例如
if(..)
statement_1;
statement_2;
Run Code Online (Sandbox Code Playgroud)
无论选项卡如何,仅statement_1在if块内部考虑.
以下代码与此不相符:
int main ()
{
if(false) // outer - if
if(false) // nested - if
cout << "false false\n";
else if(true)
cout << "true\n";
}
Run Code Online (Sandbox Code Playgroud)
上面的代码不打印任何东西.它应该打印出来"true".
它出现时else if自动嵌套在外部 if块中.g++ -Wall发出警告,但这不是问题.一旦你把花括号,一切都按预期的顺利.