Day 3・制御フロー — 順次・分岐・反復
組み合わせで複雑な判断 — 自動販売機の中の小さな判断の積み重ね
順次・分岐・反復を組み合わせると、複雑な処理も表現できる。
三つの部品を組み合わせる
ここまでで「順次(上から順に)」「分岐(もし〜なら)」「反復(繰り返す)」という三つの部品を学びました。すごいことに、どんなに複雑なプログラムも、この三つの組み合わせでできています。の全体像がこれで揃いました。
たとえるなら
自動販売機を思い浮かべてください。中では小さな判断が積み重なっています。「お金は足りている?(分岐)」「ボタンが押された?(分岐)」「在庫はある?(分岐)」を順番に確認し(順次)、複数商品を扱うために同じチェックを繰り返す(反復)。難しく見える機械も、実は小さな判断の積み木です。
大事なのは、一つ一つの部品はとても単純だということです。複雑さは「たくさん組み合わさっていること」から来ているだけ。だから、複雑なコードも小さな部品に分けて読めば、必ず理解できます。
商品リストの一つずつについて 繰り返す: (反復)
もし 投入金額 >= その商品の値段 なら: (分岐)
商品を出す (順次)
おつりを計算して返す (順次)
そうでなければ:
「お金が足りません」と表示 (順次)なぜ組み合わせを理解するの?
AIが作るコードは、この三つの部品が何重にも組み合わさっています。丸ごと理解しようとすると難しく感じますが、「これは反復の中に分岐が入っているな」と部品に分けて見れば、落ち着いて追えます。基礎があると、生成コードが怖くなくなります。
組み合わせで気をつけたいのが入れ子(ネスト)です。ループの中にループ、分岐の中に分岐、と部品が深く入り込むと、流れが一気に読みにくくなります。深くなりすぎたら「もっと単純にできないか」を疑うサインです。
深すぎる入れ子
分岐の中に分岐、その中にまた分岐…で流れが追えない
もしA:
もしB:
もしC:
もしD: …浅くて読みやすい
条件をまとめる、途中で早めに終わらせるなどで浅く保つ
もし 条件を満たさない: すぐ終了
本来やりたい処理丸投げの落とし穴
「自動販売機みたいなの作って」と丸投げすると、AIは動くコードを出しますが、判断の抜け(在庫ゼロの扱い、ちょうどの金額の扱いなど)に気づけないことがあります。三つの部品で流れを追える人は、こうした抜けを自分で見つけて直せます。
AIにはこう頼む
「このコードを、順次・分岐・反復の三つに分けて、どこがどの部品か教えて」「この分岐で、考え漏れている条件はない?」と聞くと、組み合わせの構造と抜けをチェックできます。
- どんな複雑なプログラムも、順次・分岐・反復の組み合わせでできている
- 自動販売機のように、小さな判断の積み重ねと考える
- 複雑なコードは部品に分けて読めば理解できる
- 入れ子が深すぎたら、単純化できないか疑うサイン
- 丸投げは判断の抜けを見逃す。部品で追える人は直せる
読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。
理解度チェック
答えられれば、面接で説明できる状態に一歩近づきます。
プログラムの制御フローの基本部品の組み合わせとして正しいものは?
入れ子(ネスト)が深くなりすぎたときの正しい心構えは?
順次・分岐・反復の組み合わせで複雑な処理ができることを、自動販売機のたとえで説明してください。
記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。