Избегать избыточности оператора Switch, когда несколько дел делают одно и то же?

У меня есть несколько случаев в коммутаторе, которые делают то же самое, например так: (это написано на Java)

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

Можно ли как-нибудь объединить случаи 1, 2 и 3 в один, так как все они вызывают один и тот же метод?

Ответы на вопрос(4)

Конечно, вы можете позволитьcase разделы статей для 1 & 2 к 'провалиться' к пункту 3, а затемbreak внеswitch заявление после этого:

case 1:
case 2:
case 3:
     aMethod();
     break;
case 4:
     anotherMethod();
     break;
 Reimeus31 авг. 2013 г., 00:46
В этом случае вы можете позволить 3 "провалиться" 4. Вопрос здесь указывает на то, что 3 и 4 не имеют общей функциональности
 Kalpesh Soni31 авг. 2013 г., 00:33
Что делать, если 3 и 4 имеет некоторую общую часть, а 4 делает некоторые дополнительные вещи
 Ted Hopp30 дек. 2015 г., 08:17
Ну нет, ты можешьпусть 3 падает до 4. В этом случае все, что сделано для случая 4, всегда будет выполнено и для случая 3, и это будет 3, который будет выполнять дополнительные действия (до провала). Используяswitch, вы можете делать только дополнительные вещидо общие вещи. Если вам нужна другая логика, вам нужно использовать другие управляющие структуры (илиif заявления, вложенные в случаи переключения, которые я считаю уродливыми).

Ниже самое лучшее, что вы можете сделать

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

потому что когда это происходит в случае 1 (например), оно падает в случае 2 (нетbreak утверждение), которое затем переходит к случаю 3.

называется "провалиться" шаблон:

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

Ваш ответ на вопрос