条件语句后的多个单独的括号内的代码段

时间:2013-04-04 21:28:07

标签: c++ conditional-statements brackets

在下面的代码示例中 - 这是不好的做法吗?另外为什么编译器会进入第二个括号内的声明?我奇怪之前从未经历过这种情况,但是在采访中出现了这种情况。我原以为第二个括号内的片段会寻找另一个条件陈述。代码如下:

if ( condition )
{
    // some code
}
{
    // some code
}

感谢您提前提供任何有用的解释。

2 个答案:

答案 0 :(得分:1)

if ( condition )
{
    // gets executed if condition == TRUE
}
{
    // always gets executed, has nothing to do with previous if statement
    int a = 42 ; //only exists inside brackets
}

答案 1 :(得分:1)

您可以在任何地方使用{}进行阻止;它不需要附加到if条件。

它可以用于控制对象的生命周期。

{
    MyObject foo;
    // ... do something with foo ...
}   // MyObject just went out of scope, so its destructor is called
// foo is no longer defined