バイブコーディングの土台

Day 3制御フロー — 順次・分岐・反復

組み合わせで複雑な判断 — 自動販売機の中の小さな判断の積み重ね

順次・分岐・反復を組み合わせると、複雑な処理も表現できる。

三つの部品を組み合わせる

ここまでで「順次(上から順に)」「分岐(もし〜なら)」「反復(繰り返す)」という三つの部品を学びました。すごいことに、どんなに複雑なプログラムも、この三つの組み合わせでできています。の全体像がこれで揃いました。

たとえるなら

自動販売機を思い浮かべてください。中では小さな判断が積み重なっています。「お金は足りている?(分岐)」「ボタンが押された?(分岐)」「在庫はある?(分岐)」を順番に確認し(順次)、複数商品を扱うために同じチェックを繰り返す(反復)。難しく見える機械も、実は小さな判断の積み木です。

大事なのは、一つ一つの部品はとても単純だということです。複雑さは「たくさん組み合わさっていること」から来ているだけ。だから、複雑なコードも小さな部品に分けて読めば、必ず理解できます。

TEXT
商品リストの一つずつについて 繰り返す:      (反復)
    もし 投入金額 >= その商品の値段 なら:   (分岐)
        商品を出す                         (順次)
        おつりを計算して返す                (順次)
    そうでなければ:
        「お金が足りません」と表示             (順次)
自動販売機の中身(三つの部品の組み合わせ)

なぜ組み合わせを理解するの?

AIが作るコードは、この三つの部品が何重にも組み合わさっています。丸ごと理解しようとすると難しく感じますが、「これは反復の中に分岐が入っているな」と部品に分けて見れば、落ち着いて追えます。基礎があると、生成コードが怖くなくなります。

組み合わせで気をつけたいのが入れ子(ネスト)です。ループの中にループ、分岐の中に分岐、と部品が深く入り込むと、流れが一気に読みにくくなります。深くなりすぎたら「もっと単純にできないか」を疑うサインです。

深すぎる入れ子

分岐の中に分岐、その中にまた分岐…で流れが追えない

TEXT
もしA:
  もしB:
    もしC:
      もしD: …

浅くて読みやすい

条件をまとめる、途中で早めに終わらせるなどで浅く保つ

TEXT
もし 条件を満たさない: すぐ終了
本来やりたい処理

丸投げの落とし穴

「自動販売機みたいなの作って」と丸投げすると、AIは動くコードを出しますが、判断の抜け(在庫ゼロの扱い、ちょうどの金額の扱いなど)に気づけないことがあります。三つの部品で流れを追える人は、こうした抜けを自分で見つけて直せます。

AIにはこう頼む

「このコードを、順次・分岐・反復の三つに分けて、どこがどの部品か教えて」「この分岐で、考え漏れている条件はない?」と聞くと、組み合わせの構造と抜けをチェックできます。

  • どんな複雑なプログラムも、順次・分岐・反復の組み合わせでできている
  • 自動販売機のように、小さな判断の積み重ねと考える
  • 複雑なコードは部品に分けて読めば理解できる
  • 入れ子が深すぎたら、単純化できないか疑うサイン
  • 丸投げは判断の抜けを見逃す。部品で追える人は直せる

読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。

理解度チェック

答えられれば、面接で説明できる状態に一歩近づきます。

Q1

プログラムの制御フローの基本部品の組み合わせとして正しいものは?

Q2

入れ子(ネスト)が深くなりすぎたときの正しい心構えは?

Q3

順次・分岐・反復の組み合わせで複雑な処理ができることを、自動販売機のたとえで説明してください。

記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。