142

これは私がやりたいことです:

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

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

「case: 2 || 5」で試してみましたが、うまくいきませんでした。

目的は、異なる値に対して同じコードを記述しないことです。

4

6 に答える 6

367

各スイッチ ケースを積み重ねることで、OR 条件を実現します。

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

    case 7:
    case 12:
    ...
    break;
    ...
}
于 2009-05-11T14:51:02.897 に答える
38

ケースラベルを積み重ねることでそれを行います:

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

    case 7: 
    case 12:
    ...
    break;
    ...
}
于 2009-05-11T14:51:38.293 に答える
22
case 2:
case 5:
do something
break;
于 2009-05-11T14:51:11.993 に答える
18

特に指定しない場合 (ブレークを記述することによって)、Case ステートメントは自動的に失敗します。したがって、あなたは書くことができます

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

// など... }

于 2009-05-11T14:55:23.013 に答える
4

switch ステートメントの例は、空でない s をスタックすることはできませんが、s を使用する必要があることを示していますcasegoto

// 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.");
   }
}
于 2009-05-11T14:59:08.967 に答える