在下面的代码示例中 - 这是不好的做法吗?另外为什么编译器会进入第二个括号内的声明?我奇怪之前从未经历过这种情况,但是在采访中出现了这种情况。我原以为第二个括号内的片段会寻找另一个条件陈述。代码如下:
if ( condition )
{
// some code
}
{
// some code
}
感谢您提前提供任何有用的解释。
答案 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