← 用語集一覧へ戻る

条件分岐

Conditional Branch
programming beginner
条件によって処理の流れを変える仕組みで、if文などで実装する。
条件分岐 (Conditional Branch)

概要(サマリー)

条件分岐とは、「ある条件が満たされているかどうか」によって、プログラムの処理を切り替える仕組みのことである。

「もし雨が降っていたら傘を持つ、そうでなければ持たない」という日常の判断と同じ発想だ。プログラムはこの条件分岐を組み合わせることで、状況に応じた柔軟な処理ができるようになる。AIコーディングでもロジックの核となる部分であり、しっかり理解しておくと「AIが生成したコードが何をやっているか」が格段に読みやすくなる。

詳細解説

条件分岐とは何か

プログラムは基本的に上から下へ順番に命令を実行するが、「場合によって処理を変えたい」ときに条件分岐が必要になる。

最も基本的な構文は if 文だ。条件が true(真)なら中の処理を実行し、false(偽)なら実行しない。

let score = 80;

if (score >= 60) {
  console.log("合格です!");
}

score が60以上なら「合格です!」と表示される。60未満の場合は何も表示されない。

if-else による2択の分岐

条件が満たされなかった場合の処理は else で書く。

let score = 40;

if (score >= 60) {
  console.log("合格です!");
} else {
  console.log("不合格です…");
}

「合格か不合格か」のような2択の場面でよく使われる。

else if による多段分岐

3つ以上の条件を使い分けたい場合は else if を重ねる。

let score = 75;

if (score >= 90) {
  console.log("優");
} else if (score >= 70) {
  console.log("良");
} else if (score >= 60) {
  console.log("可");
} else {
  console.log("不可");
}

条件は上から順に評価され、最初に true になったブロックだけが実行される。

switch 文による分岐

値が特定のパターンのいずれかに一致するか確認したいときは switch 文が使いやすい。

let day = "月";

switch (day) {
  case "土":
  case "日":
    console.log("今日は休日です");
    break;
  default:
    console.log("今日は平日です");
}

if-else でも同じことはできるが、比較するパターンが多い場合は switch の方が読みやすくなる。

三項演算子(簡略記法)

シンプルな2択であれば、三項演算子を使ってコンパクトに書けることもある。

let score = 75;
let result = score >= 60 ? "合格" : "不合格";
console.log(result);  // "合格"

条件 ? 真の場合 : 偽の場合 という形式だ。短く書けて便利だが、複雑な条件には向かない。

AIコーディングとの関係

条件分岐はAIが生成するコードの中に必ずといっていいほど登場する。「どんな条件でどう処理を変えたいか」を具体的に伝えることがポイントだ。

AIへの効果的な指示の例:
- 「ログイン済みユーザーには管理ページへのリンクを、未ログインの場合はログインページへのリンクを表示してください」
- 「スコアが90以上なら"優"、70以上なら"良"、60以上なら"可"、それ以外は"不可"を返す関数を作ってください」
- 「このif-elseの条件を読んで、何をしているか日本語で説明してください」

エラーハンドリングでも条件分岐は中核になる。「エラーが起きた場合はXを、正常な場合はYを実行する」といった処理は、条件分岐で書かれていることが多い。

よくある勘違い

====== の違い

初心者が最も混乱しやすいのが、代入の =、比較の ==、厳密比較の === の違いだ。条件分岐の中で if (x = 5) と書くと、比較ではなく代入が起きてしまい常に true になる。JavaScriptでは === を使う習慣をつけると型の不一致による予期せぬ挙動を防げる。

else if と else の書き忘れ

if だけを並べると、条件が重なる場合に複数のブロックが実行されてしまうことがある。「どれか1つの条件だけ実行したい」場合は else if でつなぐことが重要だ。

条件が複雑すぎるとデバッグが難しくなる

if の中に if を何層も重ねた「ネストの深い条件分岐」は、読むのも直すのも難しくなる。AIに「この条件分岐をリファクタリングして読みやすくして」と依頼できると知っておくだけで、コードの質が上がる。

switch 文の break 忘れ

switch 文では各 case の末尾に break を書かないと、次の case の処理まで実行される「フォールスルー」が起きる。意図しない処理が実行されるバグの原因になりやすいので注意が必要だ。

まとめ

  • 条件分岐とは、条件の真偽によって処理の流れを切り替える仕組みのことである
  • ifelseelse if でほとんどの分岐は書ける。値のパターン比較には switch も便利
  • 条件の比較は ===(厳密等価)を使う習慣をつけると型のミスを防ぎやすい
  • ネストの深い条件分岐は読みにくくなるため、AIにリファクタリングを依頼するのも有効
  • エラーハンドリングや認証チェックなど、Webアプリの至るところで条件分岐は使われている

情報ソース

より詳しくAIに聞いてみよう

  • 条件分岐とは何かを、日常生活のたとえを使って中学生でもわかるように説明してください。
  • JavaScriptの ===== の違いを、具体的なコード例で説明してください。
  • ネストの深い if-else をリファクタリングする方法を教えてください。
  • AIコーディングで条件分岐を作ってもらうとき、どう指示すれば意図通りのコードになりますか?
  • エラーハンドリングと条件分岐の関係を、実際のコード例で説明してください。