2012-11-27 58 views
0

我有一個switch語句:將突破

swtich(x) 
{ 
    case 1: 
      ... 
      break; 
    case 2: 
      ... 
      break; 
} 

我想把...代碼的功能,但我想把休息過...所以我想這樣的事情

void func() 
{ 
    ...; 
    break; 
} 

swtich(x) 
{ 
    case 1: 
      func(); 
    case 2: 
      func(); 
} 

打破給出錯誤(我知道爲什麼),但我能做什麼?

+1

只需在你的交換機中呼叫'func()'後放置斷點 – dmck

+0

在這種情況下,'break'作爲'switch'語句的每種情況的終止符。你不必把它放到函數中。它應該保留在每個'case ...'塊的末尾。 –

+0

好吧我只是想知道如果可能 – a1204773

回答

2

你不能。你可以做的最好的是:

swtich(x) 
{ 
    case 1: 
      func(); 
      break; 
    case 2: 
      func(); 
      break; 
} 

什麼休息的討論,請參閱here是:

break語句終止於它出現的最接近的封閉循環或switch語句。如果有的話,控制權將傳遞給終止語句後面的語句。

如果你把它放在一個函數中,它將如何知道它應該應用到哪個循環或開關語句?

+0

是的,我是這樣做的......只是想知道我是否可以做到這一點更簡單.. – a1204773

+0

@Loclip:不知道它可能會更簡單。 –

+0

如果我想成爲可能,那麼它會更簡單:D – a1204773

1

不要在功能中放置中斷。乾淨利落。

switch(x) 
{ 
    case 1: 
      func(); 
      break; 
    case 2: 
      func(); 
      break; 
} 
2

您不能將break置於另一種方法。

,如果你想case 1case 2做同樣的事情。雖然,這是合法的:

switch (x) 
{ 
    case 1: 
    case 2: 
     func(); 
     break; 
} 
+0

你有點在這裏,但我的功能有參數...我只是想知道如果我可以做我說的.. – a1204773

2

正如其他人所說,這是不可能的。以這種方式來看待,如果在執行到break;行時不在switch語句內,預期的行爲是什麼?

在函數調用後加上break;語句。如果您希望函數在給定條件下停止執行,請使用return;語句。