2012-05-18 56 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

Geez,爲什麼所有的-1,是的,我可以很容易地測試這個,但我認爲這將是有用的其他人。 – jmasterx

回答

8

必須我把每一個break;

是的,如果你只想執行一個案例。或者,其他控制流程語句也可能導致switch退出,如returnthrow

如果您要將//code替換爲std::cout << "case [x]" << std::endl,則答案將顯而易見。

3

是的,休息是需要的,它才能正常工作。括號只引入一個範圍,但不影響流量控制。

0

不在最後一個,即使這樣做是一個好習慣。

如果你不把break放在一個,那麼當前情況和所有的持續情況都會執行到下一次休息,拋出或返回。

這是在你希望兩個case部分執行相同的代碼的情況下非常有用,你可以寫:

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

這將執行對a和b。

相關問題