12

次のように、同じことを行うスイッチに複数のケースがあります:(これはJavaで書かれています)

 case 1:
     aMethod();
     break;
 case 2:
     aMethod();
     break;
 case 3:
     aMethod();
     break;
 case 4:
     anotherMethod();
     break;

ケース 1、2、および 3 を 1 つのケースに結合する方法はありますか?それらはすべて同じメソッドを呼び出すためです。

4

4 に答える 4

24
case 1:
case 2:
case 3:
    aMethod();
    break;
case 4:
    anotherMethod();
    break;

これが機能するのは、たまたまケース 1 (たとえば) の場合、ケース 2 (breakステートメントなし) にフォールスルーし、その後ケース 3 にフォールスルーするためです。

于 2012-10-19T00:32:20.570 に答える
7

確かに、case1 と 2 の節セクションが 3 節に「フォール スルー」し、その後のステートメントからbreak外れるようにすることができます。switch

case 1:
case 2:
case 3:
     aMethod();
     break;
case 4:
     anotherMethod();
     break;
于 2012-10-19T00:32:23.897 に答える
4

以下はあなたができる最善のことです

case 1:
case 2:
case 3:
     aMethod();
     break;
 case 4:
     anotherMethod();
     break;
于 2012-10-19T00:32:44.070 に答える
4

これは「フォール スルー」パターンと呼ばれます。

case 1:  // fall through
case 2:  // fall through
case 3: 
   aMethod(); 
   break; 
case 4: 
   anotherMethod(); 
   break; 
于 2012-10-19T00:32:50.520 に答える