リファクタリング

if文をネスト(入れ子)させずにコードを書く方法

投稿日:

if文をネスト(入れ子)させずにコーディングする1つの方法です。
私が好んで使うパターンを紹介します。

 

基本的なパターン

1.デフォルト値を設定。
2.if文は、デフォルト値と異なる場合を判定して保持する。
3.処理は最後の1回だけとする。

 

ネスト(入れ子)した例

<問題点>
・条件判定がわかりづらい。
・表示の処理が判定ケース毎にあり、修正箇所が分散している。

 

ネストしていない例

<メリット>
・デフォルト値が必ず設定される。
・条件判定(if文)で設定値を個別に設定するので、単純になる。
・処理をまとめたことで修正が局所化された。

 

まとめ

・デフォルト値で処理する値を初期化する。
・設定値が変わる場合のみを、if文で個別に判定する。
・処理を1つにすることで、余分な記述を省き、修正箇所の局所化を実現できる。

 

サンプル

-リファクタリング
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

else句を使わないでコーディングする方法

ThoughtWorksアンソロジーの第5章 オブジェクト指向エクササイズで取り上げられている、 「2.else句を使わない」で私が使っている方法です。 else句を使っているパターンを、使わないパタ …

なぜelse、else ifを書かないようにすべきなのか?

  結論 else、else ifは、判定条件の理解を複雑に見せてしまうため、 ifのみで実装することが望ましい。   性別を判定する例 Before: else句を使用した場合 …

elseを使わないことでパフォーマンスが下がる場合の対処法

  状況 前回記事(なぜelse、else ifを書かないようにすべきなのか?)のような ifのみで判定されており、それがfor文等の繰り返し処理の中にある場合は パフォーマンスが下がる。 …

記事を探す

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。