2015-11-04 62 views
0

我有這樣的事情是否可以執行交換機的兩種情況?

switch($m){ 
    case 1: 
     some code 
     break; 
    case 2: 
     some code 
     break; 
    case 3: 
     some code 
     break; 
} 

我需要那麼情況2執行它會回去和執行情況1,或則情況下3執行我需要回去和執行情況1.

有可能嗎? 謝謝!

+0

爲什麼不爲每種情況創建函數,然後根據需要調用它們 – 2015-11-04 19:56:25

+0

下面有一些很好的猜測,但我打賭有選項甚至不使用'switch \ case'。我們根本沒有足夠的信息來回答這個問題。 – 2015-11-04 20:01:45

+0

假設你使用的是c/C++,一個非常糟糕的選擇是使用「標籤」和「goto」語句。但請參閱@ Dagon的評論。你*不應該在這樣的switch語句中跳來跳去。如果需要的話,重構使用if/else + helper函數。 – Xerion

回答

0

如果我理解正確的,這樣的事情應該爲你工作:

function duck($m) 
{ 
    switch($m){ 
     case 1: 
      //some code 
      break; 
     case 2: 
      duck(1); 
      break; 
     case 3: 
      duck(1); 
      break; 
    } 
} 


duck(2); 

祝你好運!

0

這是可能的,如果你將它設置正確:

switch($var){ 
    case 1: 
     some code 1; 
    case 2: 
     some code 2; 
     break; 
    case 3: 
     some code 3; 
    default 
     some code 4; 
     break; 
} 

基本上,它會繼續下去的交換機的流直到它到達一個突破。因此,在這個例子中,情況2將執行代碼2,但情況1將執行第一代碼1 THEN代碼2,因爲沒有中斷。情況3和默認情況下一樣:情況3會同時打到一些代碼3和一些代碼4.

相關問題