Существуют различные способы достижения того, что вам нужно.Я обрисую несколько.
Методы использования
Это просто, несколько чисто и легко поддерживать.Все, что вам нужно сделать, это обернуть код, который вы хотели бы выполнить в каждом случае, в отдельный метод, а затем вызвать эти методы из коммутатора.Это как раз то, для чего нужны функции.
switch(option){
case 1:
doA();
break;
case 2:
doB();
break;
...
// other cases
...
case 9:
doA();
doB();
...
// other method calls
...
break;
}
Переключение на if
операторы
Это довольно очевидно, просто проверьте, является ли опция каждым отдельным случаемили вариант 9.
if(option == 1 || option == 9){
do A;
}
if(option == 2 || option == 9){
do B;
}
...
// other cases
...
(Mis) use break
s
Это довольно уродливо, и я бы не рекомендовал это, но это действительно личное делопредпочтение (и насколько легко читать и поддерживать, вы хотите, чтобы код был в будущем).
Если option
равно 9
, тогда мы устанавливаем флаг, чтобы отключить все разрывы в операторе switch.Это эффективно заставляет все остальные случаи ниже этого просто выполнять линейно (поскольку разрывы, чтобы оставить выключатель, отключены).
boolean isCase9 = false;
switch(option){
case 9:
isCase9 = true;
case 1:
doA();
if(!isCase9){
break;
}
case 2:
doB();
if(!isCase9){
break;
}
...
// other cases
...