2013-08-27 47 views
9

我想知道如果有一種方法可以組合開關的情況下,例如:ios有一種方法來組合切換案例?

switch (value) 
    { 
    case 0,1,2: 
     nslog (@"0,1,2 cases"); 
     break 
     case 3: 
     nslog (@"3 cases"); 
     break; 
     default: 
     NSLog (@"anything else"); 
     break; 
    } 

我會很感激你的幫助

回答

27

你的意思是,這樣的事情?

switch (value) 
{ 
case 0: 
case 1: 
case 2: 
    NSLog (@"0,1,2 cases"); 
    break; 
case 3: 
    NSLog (@"3 cases"); 
    break; 
default: 
    NSLog (@"anything else"); 
    break; 
} 

你知道,開關罩結構將執行從相應的案例行開始的括號內的每一行,直到它到達最後一個或休息。因此,如果您在案件後不包括中斷,它也將繼續執行下一個案例。

+1

如何組合醜陋的方式︰開關(值/ 3){情況0:nslog(@「0,1,2個案件」);打破;情況1:nslog(@「3 cases」);打破;默認:NSLog(@「其他」);打破; } – dcaswell

1

或者,您也可以做到這一點...

case 0: 
case 1: 
case 2: 
    NSLog(); 
    break; 

case 3: 
    NSLog() 
    break; 

default: 
    NSLog(); 
    break; 
+0

有一種方法可以組合0和1或1和3嗎? – Renata

+0

@Renata是的,你可以檢查我的答案...... – Rajneesh071

+0

如果你沒有在案件中「破」,那麼指令將通過以下(下一個)案件,直到它發現「破案」。因此,您可以先將通用邏輯組合在一起,然後在後一種情況下具有特定的邏輯......例如,情況0:情況2:NSLog(@「0,1和2情況」);情況1:NSLog(@「特定於情況1」);打破;情況3:NSLog(@「case 3」);打破; – Ashok

0

也可以使用範圍(一點點更少的代碼)。下面的例子說明了這一點:

switch (value) 
    { 
     case 0 ... 2: 
     NSLog (@"0,1,2 cases"); 
     break 
     case 3: 
     NSLog (@"3 cases"); 
     break; 
     default: 
     NSLog (@"anything else"); 
     break; 
    } 
相關問題