Si vous avez le type de code "recherche", vous pouvez empaqueter la clause switch-case dans une méthode par elle-même.
J'en ai quelques-uns dans un système "hobby" que je développe pour le plaisir:
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;
}
}
(Ouais. C'est l'espace GURPS ...)
Je suis d'accord avec d'autres pour dire que vous devriez dans la plupart des cas éviter plus d'un retour dans une méthode, et je reconnais que celle-ci aurait pu être mieux implémentée en tant que tableau ou autre. Je viens de trouver que switch-case-return est une correspondance assez facile avec une table de recherche avec une corrélation 1-1 entre l'entrée et la sortie, comme la chose ci-dessus (les jeux de rôle en sont pleins, je suis sûr qu'ils existent dans d'autres "entreprises" également): D
D'un autre côté, si la clause case est plus complexe ou que quelque chose se passe après l'instruction switch, je ne recommanderais pas d'utiliser return dedans, mais plutôt de définir une variable dans le commutateur, de la terminer par une pause et de retourner la valeur de la variable à la fin.
(D'un autre côté ... vous pouvez toujours refactoriser un commutateur dans sa propre méthode ... Je doute que cela ait un effet sur les performances, et cela ne me surprendrait pas si les compilateurs modernes pouvaient même le reconnaître comme quelque chose qui pourrait être incorporé ...)
continue
ougoto
- il est idiomatique de les utiliser à la place debreak
.