相关疑难解决方法(0)

"if"没有花括号的块会使后续的"else if"嵌套

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发出警告,但这不是问题.一旦你把花括号,一切都按预期的顺利.

为何如此不同的行为?
[海湾合作委员会演示:没有牙箍和大括号 ].

c c++ if-statement nested-if

21
推荐指数
2
解决办法
3万
查看次数

标签 统计

c ×1

c++ ×1

if-statement ×1

nested-if ×1