Day 3・制御フロー — 順次・分岐・反復
分岐 — if は分かれ道。もし〜なら、そうでなければ
条件によって進む道を変えるのが分岐(if / else)。
分かれ道を作るのが「分岐」
順次実行だけだと、いつも同じ手順しか踏めません。でも現実には「もし雨なら傘を持つ、そうでなければ持たない」のように、状況で行動を変えたい場面があります。これを実現するのが分岐です。の二つめの部品ですね。
たとえるなら
分岐は道の分かれ道です。目の前に「はい/いいえ」の看板があり、答えによって進む道が変わります。もし条件が本当(はい)なら右の道、そうでなければ(いいえ)左の道、というイメージです。
プログラムでは「もし〜なら」を if(イフ)、「そうでなければ」を else(エルス)と書くことが多いです。Pythonでも TypeScript でも書き方の見た目は少し違いますが、考え方はまったく同じです。
もし 年齢 が 18以上 なら
「大人料金です」と表示する
そうでなければ
「子供料金です」と表示するなぜ分岐が必要?
同じ入力にはいつも同じ返事しかできないプログラムは、案内板としては不便です。状況に応じて反応を変えられるからこそ、アプリは「使えるもの」になります。分岐は、プログラムに判断力を持たせる最初の一歩です。
条件は「本当(true)か、うそ(false)か」で判定されます。年齢が18以上、というのは本当かうそかどちらかに決まりますよね。この真偽の考え方が分岐のエンジンです。詳しくは[[statclienrequest(状態)や値の話ともつながっていきます。
分岐なし(いつも同じ)
誰が来ても「大人料金です」としか言えない
「大人料金です」と表示する分岐あり(状況で変わる)
年齢を見て料金を出し分けられる
もし 年齢<18 なら 子供料金
そうでなければ 大人料金分岐は三つ以上に増やすこともできます。「もしA、そうでなくもしB、そうでなければC」のように、分かれ道をいくつも並べられます。ただし増やしすぎると流れが読みにくくなるので、シンプルさは大切です。
AIにはこう頼む
「このifで、どういう時に上の道に進んで、どういう時に下の道に進むのか、条件を日本語で言い換えて」と頼むと、分岐の判断基準がはっきりします。生成コードのバグは、この条件の勘違いから生まれがちです。
- 分岐=条件によって進む道を変える仕組み(if / else)
- 条件は「本当か、うそか」で判定される
- 考え方は言語共通。書き方の見た目だけが違う
- 増やしすぎると読みにくい。条件はシンプルに
読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。
理解度チェック
答えられれば、面接で説明できる状態に一歩近づきます。
分岐(if / else)の役割として最も適切なものは?
分岐の条件は、最終的に何で判定される?
分岐(if / else)とは何か、分かれ道のたとえを使って説明してください。
記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。