条件分岐
Conditional Branch
プログラミングにおいて、「もし〇〇という条件を満たしていればAの処理を、そうでなければBの処理を実行する」というように、状態に応じてプログラムの流れを枝分かれさせる仕組みのこと。
🐾 猫で例えると?
直角に分かれて寝る2匹を、道が枝分かれする図に見立てています。ただし写真では両方の猫が同時にいますが、if / elseの一回の実行では、条件に応じて選ばれた枝を通ります。複数の独立したif文なら、複数の枝が実行される場合があります。
💻 IT現場における「条件分岐」とは?
順次・反復・分岐は、プログラムの流れを学ぶ基本の三つです。条件分岐は、計算した条件に応じて実行する処理を選びます。条件の書き方と確認する順序が、そのまま動作のルールになります。
ECサイトで「もしカートの合計が5000円以上なら送料無料にする」「もしログインパスワードが間違っていたらエラーメッセージを出す」など、私たちが普段使っているアプリの便利な機能や安全な制御は、すべてこの無数の条件分岐の組み合わせによって実現されています。条件分岐がなければ、プログラムはただ一直線に決められた動きをするだけのロボットになってしまいます。
⚠️ 条件分岐の仕組みと注意点
条件分岐は主に `if`(もし〜なら)、`else if`(それ以外で、もし〜なら)、`else`(どの条件にも当てはまらなければ)というキーワードを使って記述されます。現場でよく使われるもう一つの形として、値によって複数の処理を振り分ける `switch` 文もあります。
function chooseCatAction(command, sound) {
if (sound === "雷") {
return "ソファーの下へ避難";
} else if (command === "バーン!") {
return "ごろんと倒れる";
} else {
return "のんびり待つ";
}
}
console.log(chooseCatAction("バーン!", "雷")); // 避難を優先 else ifは上から順に評価され、最初に成立した枝だけを実行します。この例は両方の条件が成立しても雷への対応を優先します。境界の値、条件が重なる場合、どれにも当てはまらない場合を試すと、ルールの抜けを見つけやすくなります。
🛠️ 条件分岐を賢く使うためのポイント
可読性が高く、保守しやすい条件分岐を書くためのポイントは以下の通りです。
- 早期リターン(Early Return)を心がける: 条件を満たさないエラーケースなどは、関数の最初の方で `if` で弾いてすぐに処理を終了させることで、コードのネストを浅く保つことができます。
- 条件式をシンプルに: 「もし A かつ B、または C でないなら」といった複雑すぎる条件は、直感的に理解できません。条件を別の変数に切り出したり、意味のある名前を付けたりして整理しましょう。
- 例外との使い分け: ifは値を調べて分岐し、try-catchは処理が投げた例外を捕捉します。予測可能かどうかだけの違いではありません。利用するAPIが結果の値で失敗を返すのか、例外を投げるのかを確認します。
直角に並ぶ2匹を思い出すと、条件で道が分かれる様子が浮かびます。条件分岐では、該当する場合だけでなく、該当しない場合や境界の値も確かめましょう。条件が重なるときは、評価する順番で結果が変わらないかも確認します。