2012-05-18 3 views
-4

가능한 중복 :
Why was the switch statement designed to need a break?대소 문자가 괄호 안에 있으면 구분이 필요합니까?

나는이 있습니다

switch(i) 
{ 
    case a: 
    { 
    //code 
    } 
    case b: 
    { 
    //code 
    } 
    case c: 
    { 
    //code 
    } 
} 

i == a 경우, bc의 코드가 실행됩니다 아니면에서 break;를 삽입해야합니다 각각?

덕분에,

+0

예. [필러 ...] –

+2

예, 휴식이 필요합니다. :) –

+0

이런, 왜 -1, 네, 쉽게 테스트 할 수 있지만 다른 사람들에게 유용 할 거라고 생각했습니다. – jmasterx

답변

8

나는 각각의 break;을 넣어해야합니까?

예, 하나의 사례 만 실행하려는 경우 또는 다른 제어 흐름 명령문을 사용하면 return 또는 throw과 같이 switch이 종료 될 수 있습니다.

//code을 예를 들어 std::cout << "case [x]" << std::endl으로 바꾼다면 쉽게 대답 할 수 있습니다.

3

예, 올바르게 작동하려면 휴식이 필요합니다. 괄호는 범위 만 소개하고 흐름 제어에는 영향을 미치지 않습니다.

0

이렇게하는 것이 좋지만 마지막 하나는 아닙니다.

break에 넣지 않으면 현재 사건과 모든 계속되는 사건이 다음 휴식, 던지기 또는 돌아 오기 전까지 실행됩니다.

이 두 case 섹션 동일한 코드를 실행하려는 경우에 유용합니다, 당신은 쓸 수 있습니다 : A와 B 모두 실행할 것

case a: 
case b: 
    // ... some code... 
    break; 

합니다.

관련 문제