0
0

はじめに

if ~ elseif ~ elseなどで複数条件を処理しているコードを、エンジニアなら誰しも一度は見たことがあると思います。

その条件が何層もネストしているコードにもお目にかかったこともあるでしょう。

今回はそういうコードを、早期リターンを使って読みやすくしてみたいと思います。

早期リターン実施前

/**
 * ユーザーの参加資格をチェックする関数
 */
function isUserEligible($user) {
    // 18歳以上の場合
    if ($user['age'] >= 18) {
        // アクティブの場合
        if ($user['active']) {
            // サブスク契約中の場合
            if ($user['hasPaidSubscription']) {
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    } else {
        return false;
    }
}

早期リターン実施後

/**
 * ユーザーの参加資格をチェックする関数
 */
function isUserEligible($user) {
    // 18歳未満の場合
    if ($user['age'] < 18) {
        return false;
    }

    // アクティブじゃない場合    
    if (!$user['active']) {
        return false;
    }
    
    // サブスク契約していない場合
    if (!$user['hasPaidSubscription']) {
        return false;
    }
    
    // すべての条件をクリア
    return true;
}

まとめ

このようにネストしていた条件を反転してやって、条件に満たない場合はその時点でリターンしてやると、コードがすっきりとして処理が追いやすく、脳のメモリも節約できる。

0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0