私の知る限り、「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