「ルックアップ」タイプのコードがある場合は、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スペースです...)
ほとんどの場合、メソッドで複数のリターンを回避する必要があることを他の人に同意します。これは、配列または他の何かとして実装する方が適切だったかもしれません。上記のように、switch-case-returnが入力と出力の間に1-1の相関関係があるルックアップテーブルとかなり簡単に一致することがわかりました(ロールプレイングゲームはそれらでいっぱいですが、それらは他にも存在すると確信しています) 「ビジネス」も):D
一方、case-clauseがより複雑な場合、またはswitchステートメントの後に何かが発生する場合は、returnを使用することはお勧めしませんが、スイッチに変数を設定し、breakで終了して、returnします。最後に変数の値。
(... 3番目に?ハンド...いつでもスイッチを独自のメソッドにリファクタリングできます...パフォーマンスに影響があるとは思えません。最近のコンパイラがそれをインライン化できるもの...)
continue
orのような他の無条件制御ジャンプ文にも同じことが当てはまりますgoto
-の代わりにそれらを使用するのは慣用的break
です。