2013-08-27 17 views
9

例えば組み合わせたスイッチケースへの道がある場合、私は思っていた:スイッチケースを組み合わせる方法がありますか?

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またはブレークに到達するまで、スイッチケース構造は、対応するケースラインから始まる括弧内の各ラインを実行します。ケースの後にブレークを入れないと、次のケースも実行されます。

+1

どのように醜い方法の結合について:switch(value/3){case 0:nslog(@ "0,1,2 cases");ブレーク;ケース1:nslog(@ "3件");ブレーク;デフォルト:NSLog(@ "anything else");ブレーク; } – dcaswell

1

また、あなたがこれを行うことができます...

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

case 3: 
    NSLog() 
    break; 

default: 
    NSLog(); 
    break; 
+0

0と1または1と3を組み合わせる方法がありますか? – Renata

+0

@レナータはい、私の答えを確認することができます... – Rajneesh071

+0

ケース内で「中断しない」場合、命令は「中断」を見つけるまで、次の(次の)ケースに入ります。したがって、まず最初にジェネリックロジックを作成し、後で特定のロジックを持つことができます。ケース0:ケース2:NSLog(@ "0,1,2ケース");ケース1:NSLog(@ "ケース1に特化");ブレーク;ケース3:NSLog(@ "ケース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; 
    } 
関連する問題