Πολλαπλές περιπτώσεις σε δήλωση switch

Υπάρχει τρόπος να περνάτε μέσα από πολλαπλές δηλώσεις case χωρίς να δηλώνετε επανειλημμένα case value:;

Ξέρω ότι αυτό λειτουργεί:

switch (value)
{
   case 1:
   case 2:
   case 3:
      //do some stuff
      break;
   case 4:
   case 5:
   case 6:
      //do some different stuff
      break;
   default:
       //default stuff
      break;
}

αλλά θα ήθελα να κάνω κάτι τέτοιο:

switch (value)
{
   case 1,2,3:
      //Do Something
      break;
   case 4,5,6:
      //Do Something
      break;
   default:
      //Do the Default
      break;
}

Είναι αυτή η σύνταξη που σκέφτομαι από μια διαφορετική γλώσσα ή μου διαφεύγει κάτι;

Λύση

Δεν υπάρχει σύνταξη στη C++ ούτε στη C# για τη δεύτερη μέθοδο που αναφέρατε.

Δεν υπάρχει κανένα πρόβλημα με την πρώτη σας μέθοδο. Αν όμως έχετε πολύ μεγάλες περιοχές, χρησιμοποιήστε απλώς μια σειρά από δηλώσεις if.

Σχόλια (4)

Αυτή η σύνταξη προέρχεται από τη Visual Basic Select...Case Statement:

Dim number As Integer = 8
Select Case number
    Case 1 To 5
        Debug.WriteLine("Between 1 and 5, inclusive")
        ' The following is the only Case clause that evaluates to True.
    Case 6, 7, 8
        Debug.WriteLine("Between 6 and 8, inclusive")
    Case Is < 1
        Debug.WriteLine("Equal to 9 or 10")
    Case Else
        Debug.WriteLine("Not between 1 and 10, inclusive")
End Select

Δεν μπορείτε να χρησιμοποιήσετε αυτή τη σύνταξη στη C#. Αντ' αυτού, πρέπει να χρησιμοποιήσετε τη σύνταξη από το πρώτο σας παράδειγμα.

Σχόλια (3)

Μια λιγότερο γνωστή πτυχή του switch στη C# είναι ότι βασίζεται στον operator= και δεδομένου ότι μπορεί να αντικατασταθεί, θα μπορούσατε να έχετε κάτι τέτοιο:

Σχόλια (1)