12

我在一个开关中有多个案例做同样的事情,就像这样:(这是用 Java 编写的)

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

有什么方法可以将案例 1、2 和 3 合并为一个案例,因为它们都调用相同的方法?

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 回答