elseは、ほとんどの場合書かなくていいと思っています
「条件分岐は if と else をセットで書く」と最初に覚えた人は多いと思います。ただ実務のコードを見ていると、else が無い方が読みやすくなる場面が少なくないと感じています。今回は、if のネスト(入れ子)が深くなって読みにくい、という状態を「早期 return」という書き方でほどく話です。
ネストが深くなるコードの例
会員種別によって料金区分を返す関数を、if/else のセットで素直に書くとこうなります。
function priceType(user) {
if (user) {
if (user.isMember) {
if (user.age >= 60) {
return "senior";
} else {
return "member";
}
} else {
return "guest";
}
} else {
return "none";
}
}
動きますし、間違ってもいません。ただ、"guest" や "none" がどの条件で返るのかを知るには、閉じ括弧を数えながら上に戻って読む必要があります。条件が1つ増えるたびに、この「上に戻る距離」が伸びていきます。
早期 return で書き直す
「当てはまらないものから先に返して抜ける」と、同じ関数がこうなります。
function priceType(user) {
if (!user) return "none";
if (!user.isMember) return "guest";
if (user.age >= 60) return "senior";
return "member";
}
上から順に読むだけで、「user が無ければ none」「会員でなければ guest」「60歳以上なら senior」「それ以外は member」と、条件と結果が1行ずつ対応しています。else は1つも出てきませんが、返す値は元のコードと完全に同じです(4パターンすべて手元で突き合わせて確認しました)。
このように、関数の先頭で「この条件なら、もうここで終わり」と返してしまう書き方を早期 return と呼びます。このうち、先頭で例外的な入力(user が無い、会員でない)を弾いている部分は特にガード節と呼ばれます。
なぜ読みやすくなるのか
ポイントは「else の中身を読むときに、if の条件を裏返して覚えておかなくていい」ことです。行数が減ること自体が目的ではありません。
if/else の形だと、else ブロックを読むときに「さっきの条件が偽だった場合だな」と頭の中で条件を反転させて保持する必要があります。ネストが深いと、この「反転して保持」が何段も積み重なります。早期 return では、当てはまるケースはその場で return して消えていくので、下の行を読む時点では「上の条件はすべて当てはまらなかった」という状態が自動的に確定しています。覚えておくものが減る分、読むのが楽になります。
else を書いた方がいい場面
「ほとんどの場合」と書いたのは、例外もあるからです。
- 2つの分岐が対等で、どちらも同じくらいの重さの処理をするとき(例: 表示モードが「一覧」か「詳細」かで、それぞれ別の画面を組み立てる)。この場合は if/else で「どちらか一方」であることを明示した方が意図が伝わります
- if/else の後ろに、両方に共通する処理が続くとき。早期 return で抜けてしまうと、その後続処理まで飛ばしてしまいます。たとえば「会員なら割引を適用し、非会員ならそのまま。どちらの場合も最後にログを残す」という処理では、途中で return するとログが残らなくなるので、ここは else を書くか、条件を反転して if 1本にまとめるのが素直です
つまり「片方は例外的で、さっさと片付けたい」ときは早期 return、「両方とも本流」「後ろに共通処理がある」ときは if/else、という使い分けです。
なお、ループの中では return すると関数ごと抜けてしまうので、「その要素だけ飛ばして次へ進みたい」ときは continue で同じ発想が使えます。
まとめ
- if のネストが深くなったら、「当てはまらないものから先に return して抜ける」形に書き直せないか考えてみる
- 早期 return は else の条件を頭の中で反転して保持する負担を減らす
- 2つの分岐が対等なとき、後ろに共通処理が続くときは if/else の方が意図が伝わるので、全部を早期 return にする必要はない
AIにコードを書いてもらった時にも、この観点はそのまま使えます。ネストが3段以上になっていたら「早期 return で書き直せますか」と聞いてみてください。私が試した範囲では、素直に書き直してくれます。
面談なしで、今日から始められます
この講座は 未経験から Next.js + Supabase + Claude Code で Webアプリを公開するまで を全24セッションで体系化した教材付きプランです。無料相談を挟まず、申し込んだその日から教材で学習を始められます。AIが学習パートナーになって何度でも質問でき、つまずいた所だけチャットで直接サポートします。
- 今日から始める(教材完全版+月5,500円・チャット質問し放題・いつでも解約OK)→ https://menta.work/plan/20251?ref=menta-knowledge
- いきなりは不安な方へ:無料の教材体験版もあります(最初の数セッション分)→ プラン詳細をご覧ください

