Si tiene un tipo de código de "búsqueda", puede empaquetar la cláusula switch-case en un método por sí mismo.
Tengo algunos de estos en un sistema de "pasatiempos" que estoy desarrollando por diversión:
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;
}
}
(Sí. Ese es el espacio GURPS ...)
Estoy de acuerdo con otros en que, en la mayoría de los casos, debería evitar más de una devolución en un método, y reconozco que este podría haberse implementado mejor como una matriz o algo más. Acabo de descubrir que switch-case-return es una coincidencia bastante fácil con una tabla de búsqueda con una correlación de 1-1 entre entrada y salida, como lo anterior (los juegos de rol están llenos de ellos, estoy seguro de que existen en otros "empresas" también): D
Por otro lado, si la cláusula case es más compleja, o si algo sucede después de la instrucción switch, no recomendaría usar return en ella, sino establecer una variable en el switch, finalizarla con una interrupción y regresar el valor de la variable al final.
(En la ... tercera? Mano ... siempre se puede refactorizar un conmutador en su propio método ... dudo que tenga un efecto en el rendimiento, y no me sorprendería que los compiladores modernos pudieran reconocerlo como algo que podría estar en línea ...)
continue
ogoto
- es idiomático usarlas en lugar debreak
.