"Arama" türünde bir kodunuz varsa, switch-case cümlesini kendi başına bir yöntemde paketleyebilirsiniz.
Eğlenmek için geliştirdiğim bir "hobi" sisteminde bunlardan birkaçına sahibim:
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;
}
}
(Evet. Bu GURPS alanı ...)
Çoğu durumda bir yöntemde birden fazla dönüşten kaçınmanız gerektiği konusunda başkalarına katılıyorum ve bunun bir dizi veya başka bir şey olarak daha iyi uygulanmış olabileceğinin farkındayım. Anahtar-durum-dönüşünün, yukarıdaki gibi, girdi ve çıktı arasında 1-1 korelasyonu olan bir arama tablosuyla oldukça kolay bir eşleşme olduğunu buldum (rol yapma oyunları bunlarla dolu, eminim başka "işletmeler" de): D
Öte yandan, case-clause daha karmaşıksa veya switch-ifadesinden sonra bir şey olursa, return kullanılmasını tavsiye etmem, bunun yerine anahtarda bir değişken ayarlayın, onu bir break ile bitirin ve return sonunda değişkenin değeri.
(Üçüncü olarak? ... bir anahtarı her zaman kendi yöntemine yeniden düzenleyebilirsiniz ... performans üzerinde bir etkisi olacağından şüpheliyim ve modern derleyicilerin bunu şöyle tanıması bile beni şaşırtmaz satır içi olabilecek bir şey ...)
continue
veya gibi diğer koşulsuz kontrol atlama ifadeleri için de geçerlidirgoto
- bunlarıbreak
.