159 votes

Comment ajouter "ou" dans les déclarations de cas?

C'est ce que je veux faire:

 switch(myvar)
{
    case: 2 or 5:
    ...
    break;

    case: 7 or 12:
    ...
    break;
    ...
}
 

J'ai essayé avec "case: 2 || 5", mais cela n'a pas fonctionné.

Le but est de ne pas écrire le même code pour des valeurs différentes.

396voto

Jose Basilio Points 29215

En empilant chaque boîtier de commutateur, vous atteignez la condition OU.

 switch(myvar)
{
    case 2:
    case 5:
    ...
    break;

    case 7:
    case 12:
    ...
    break;
    ...
}
 

44voto

Dave Webb Points 90034

Vous le faites en empilant des étiquettes de cas :

 switch(myvar)
{
    case 2:
    case 5:
    ...
    break;

    case 7: 
    case 12:
    ...
    break;
    ...
}
 

22voto

On Freund Points 3479
case 2:
case 5:
do something
break;

18voto

AnnaR Points 1473

Les instructions de casse échouent automatiquement si vous ne spécifiez pas autrement (en écrivant break). Par conséquent, vous pouvez écrire

 switch(myvar)
{
   case 2:
   case 5:
   {
      //your code
   break;
   }
 

// etc... }

6voto

gimel Points 30150

L'exemple d' instruction switch montre que vous ne pouvez pas empiler des case s non vides, mais que vous devez utiliser goto s:

 // statements_switch.cs
using System;
class SwitchTest 
{
   public static void Main()  
   {
      Console.WriteLine("Coffee sizes: 1=Small 2=Medium 3=Large"); 
      Console.Write("Please enter your selection: "); 
      string s = Console.ReadLine(); 
      int n = int.Parse(s);
      int cost = 0;
      switch(n)       
      {         
         case 1:   
            cost += 25;
            break;                  
         case 2:            
            cost += 25;
            goto case 1;           
         case 3:            
            cost += 50;
            goto case 1;             
         default:            
            Console.WriteLine("Invalid selection. Please select 1, 2, or3.");            
            break;      
       }
       if (cost != 0)
          Console.WriteLine("Please insert {0} cents.", cost);
       Console.WriteLine("Thank you for your business.");
   }
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X