2012-12-06 35 views
17

可能是一個基本問題,但我想在開關case語句中使用多個參數來減少一些代碼。可能?正確的語法?具有多個參數的objective-c開關情況

switch (myInteger){ 
      case (1): //here I would like to apply multiple arguments as case (1 || 3 || 5) 
       <#statements#> 
       break; 
      case (2): 
       <#statements#> 
       break; 
      default: 
       break; 

回答

55

您可以正確使用多個case

switch (myInteger) { 
    case 1: 
    case 3: 
    case 5: 
     // statements 
     break; 
    case 2: 
     // statements 
     break; 
    default: 
     // statements 
     break; 
} 
+1

它是在SWIFT的最大改進,你可以用逗號分隔同一行中寫一個案例裏面。 –

+1

所以你說如果你在情況5下面放一些代碼,如果選擇了情況1,3或5,它會運行? – Supertecnoboff

+0

@Supertecnoboff是的。這個「特徵」被稱爲「穿透」。執行的路徑找到適用的case語句,然後執行它後面的任何內容,直到達到「break」語句。 –

12
case 1: 
case 3: 
case 5: 
    statements; 
    break; 
case 2: 
    statements; 
    break; 
default: 
    break; 
+2

你有一個錯字(5號後沒有冒號)。而且不需要括號。 – rmaddy

+0

大聲笑,打字迅速試圖擊敗正確的答案趕... ...感謝趕上它! –

1

對於斯威夫特3有,我想提

switch some value to consider { 
case 1: //single argument 
    print("ABC") 

case 2,3: // multiple arguments 
    print("KLM") 

default: 
    print("XYZ") 
} 

希望它可以幫助你的修改。由於

0

開關箱必須聲明的主要方法

語法

Switch (variable r expression) 
{ 
    Case 1 : 
    Body ; 
    Break 

    Case 2 : 
    Body; 
    Break; 

    Default : 
    Body ; 
    Break; 
} 
+0

這是簡單模式下開關盒的語法 –