リファクタリング

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

投稿日:2020年4月29日 更新日:

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

 

基本的なパターン

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

 

ネスト(入れ子)した例

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

 

ネストしていない例

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

 

まとめ

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

 

サンプル

 

おすすめ書籍

今よりもいいコードを書けるようになりたいのであれば、一読すべき書籍です。

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-リファクタリング
-,

執筆者:


comment

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

CAPTCHA


関連記事

【Java】Optionalが処理できないならデフォルト値を返そう

概要 Optionalはnullである可能性を明示的に返してくれる便利なコンテナ・オブジェクトです。 if(obj == null)… といったことをしなくてよくなったのは素晴らしいことだ …

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

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

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

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

【Java】HashSet、LinkedHashSet、TreeSetの違い

概要 重複しないリストは、「Setに格納することで重複を除外してくれる」というのは多くの記事で紹介されています。 ここでは、Setに格納した後のデータの並び順も考慮したいという要件に対応するために、3 …

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

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

■運営者プロフィール
IT業界10年のエンジニア。
PHP -> VBA -> Javaと渡り歩いてきて、今はJavaをメインにフリーランスエンジニアとして活躍中!

[保有資格]
・Java SE 11 Gold

一度はエンジニアを辞めざるを得なかった私が再びエンジニアとして復活した数奇な物語

SpringFramworkの良書

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

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