2012-12-06 17 views
17

Wahrscheinlich eine grundlegende Frage, aber ich möchte einige Code mit mehreren Argumente auf Switch-Case-Anweisungen reduzieren. Möglich? Richtige Syntax?Objective-C-Schalter Fall mit mehreren Argumenten

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; 

Antwort

55

Sie können mehrere case s direkt nebeneinander verwenden.

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

es ist eine der größten Verbesserungen in SWIFT, die Sie Fälle in der gleichen Zeile mit Komma getrennt schreiben können. –

+1

Sie sagen also, dass, wenn Sie einen Code in Fall 5 eingeben, wird es ausgeführt, wenn Fall 1, 3 oder 5 ausgewählt ist? – Supertecnoboff

+0

@Supertecnoboff Ja. Dieses "Feature" wird "Fall-Through" genannt. Der Pfad der Ausführung findet die anwendbare case-Anweisung und führt anschließend alles aus, was danach kommt, bis es eine 'break'-Anweisung erreicht. –

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

Sie haben einen Tippfehler (kein Doppelpunkt nach den 5). Und es gibt keine Notwendigkeit für die Klammern. – rmaddy

+0

LOL, schnell tippen versucht, den Ansturm der richtigen Antworten zu schlagen ... Danke für den Fang! –

1

Für Swift 3 gibt es eine Änderung, die ich

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

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

default: 
    print("XYZ") 
} 

Hoffe, dass es Ihnen hilft, erwähnen möchten. Dank

0

Schalter Fall muss innerhalb des Hauptverfahrens erklärt

SYNTAX

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

    Case 2 : 
    Body; 
    Break; 

    Default : 
    Body ; 
    Break; 
} 
+0

Das ist eine Syntax für den Schalterfall im einfachen Modus –

Verwandte Themen