2013-04-04 3 views
0

다음 코드 예제에서는 나쁜 관행입니까? 또한 컴파일러는 왜 두 번째 대괄호로 들어가야합니까? 이상하게도 전에 경험 한 적 없지만 인터뷰 상황에서 나왔습니다. 나는 두 번째 괄호로 묶은 부분이 또 다른 조건문을 찾을 것이라고 생각했을 것이다. 코드는 다음과 같습니다 :조건문 다음에 여러 개의 괄호로 묶은 코드 세그먼트

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

사전에 도움이되는 설명에 감사드립니다.

+1

새로운 범위 일뿐입니다. 이 구문과 유사한 [for 루프 제안] (http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3587.pdf)이 있습니다. – chris

답변

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

; if 상태에 부착 할 필요는 없습니다.

개체의 수명을 제어하는 ​​데 유용 할 수 있습니다.

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