Якщо у вас є код "підстановки", ви можете упакувати пропозицію switch-case в метод самостійно.
У мене є декілька з них у системі "хобі", яку я розробляю для розваги:
private int basePerCapitaIncomeRaw(int tl) {
switch (tl) {
case 0: return 7500;
case 1: return 7800;
case 2: return 8100;
case 3: return 8400;
case 4: return 9600;
case 5: return 13000;
case 6: return 19000;
case 7: return 25000;
case 8: return 31000;
case 9: return 43000;
case 10: return 67000;
case 11: return 97000;
default: return 130000;
}
}
(Так. Це простір GURPS ...)
Я погоджуюсь з іншими, що у більшості випадків слід уникати кількох повернень методу, і я усвідомлюю, що цей, можливо, був би краще реалізований як масив чи щось інше. Я щойно виявив, що перемикач case-return досить легко збігається з таблицею пошуку з кореляцією 1-1 між входом і виходом, як і вище (рольові ігри повні їх, я впевнений, що вони існують і в інших "підприємства" також): D
З іншого боку, якщо речення case є більш складним, або щось трапляється після оператора switch, я б не рекомендував використовувати в ньому return, а навпаки, встановити змінну в комутаторі, закінчити його перервою і повернути значення змінної в кінці.
(З ... третьої? Сторони ... ви завжди можете перетворити перемикач на свій власний метод ... Я сумніваюся, що це вплине на продуктивність, і це не здивувало б мене, якби сучасні компілятори могли навіть розпізнати це як щось, що можна було б вбудувати ...)
continue
абоgoto
- ідіоматично використовувати їх замістьbreak
.