分岐が「選ぶ」なら、繰り返しは「回す」

分岐が「選ぶ」なら、繰り返しは「回す」

前回のE-05では、条件分岐が真偽値を使って流れを選ぶ仕組みだと学びました。分岐が流れを選ぶものだとすれば、今回学ぶ繰り返しは流れを回すものです。業務でよく出てくる「一覧の全件をまとめて処理する」「100件を集計する」といった大量処理の正体が、この繰り返しにあたります。カテゴリEでコードを読むための道具を一つずつ積み上げてきましたが、この繰り返しはその中核に位置する回です。

このスライドのポイント

  • E-05: 条件分岐は真偽値で流れを「選ぶ」仕組みだった
  • 今回の繰り返しは、流れを「回す」仕組み
  • 業務でよくある「一覧の全件処理」「100件の集計」の正体がこれ
  • カテゴリEでコードを読む道具を積み上げてきた、その中核の回

繰り返しとは何か

繰り返しとは何か

繰り返しとは、終了条件を満たすまで同じ処理を繰り返す構造のことです。ループとも呼びます。1周まわるごとに、処理の対象となるデータや、E-03で見た変数の値が少しずつ更新されていきます。ここで欠かせないのが終了条件です。いつ止まるかを決める条件で、これがないと処理が永遠に続く無限ループ、つまり止まらないプログラムになってしまいます。まずは、1周で何が起きるかを追えることが、ループを読む出発点になります。

このスライドのポイント

  • 繰り返し(ループ)=終了条件を満たすまで同じ処理を繰り返す構造
  • 1周ごとに、対象データや変数(E-03)の値が更新されていく
  • 終了条件=いつ止まるかを決める条件
  • 終了条件を欠くと無限ループ=止まらないプログラムになる

なぜ繰り返しを知る必要があるか

なぜ繰り返しを知る必要があるか

繰り返しを知らないと、まず「100件のデータ処理をAIが一瞬で書ける」理由が分かりません。その結果、逆に1件ずつ手作業でやらせるような非効率な指示を出してしまい、AIの力を活かしきれなくなります。また、終了条件を欠いたコードが原因でアプリが固まる、いわゆる無限ループの事故も、構造が読めていなければ何が起きたのか気づけません。大量のデータをまとめて扱うことは業務アプリの中心的な仕事なので、繰り返しは避けて通れない道具です。

このスライドのポイント

  • 知らないと: AIが「100件処理」を一瞬で書ける理由が分からない
  • その結果、逆に「1件ずつ手で」のような非効率な指示をしてしまう
  • 無限ループでアプリが固まる事故も、構造が読めなければ気づけない
  • 大量処理は業務アプリの中心的な仕事

ループの構造——1周分を理解すれば全体が読める

ループの構造——1周分を理解すれば全体が読める

繰り返しの構造は、円を描くように回るフローで捉えると分かりやすくなります。処理を1回行い、次のデータへ進み、終了条件を判定し、まだ続くなら処理へ戻り、満たしたら輪から抜ける。このぐるぐる回るイメージです。ここでいちばん覚えておきたいのは、何周まわろうと1周分の中身はいつも同じだということです。だからこそ、1周分さえ理解すれば全体が読めます。何十周ぶんを頭の中で全部追いかける必要はありません。

このスライドのポイント

  • 円を描くように回るフローで捉える
  • 処理する → 次のデータへ進む → 終了条件を判定 → 続くなら戻る/満たせば抜ける
  • 何周まわっても、1周分の中身は同じ
  • だから1周分を理解すれば全体が読める。全部を追う必要はない

具体例——日報の一覧から今週分を数える

具体例——日報の一覧から今週分を数える

具体例として、日報の一覧から今週分だけを数える処理を考えてみます。まず、一覧を1件ずつ見ていくのが繰り返しです。その1件が今週のものかどうかを判定するのがE-05の条件分岐、今週であれば件数を1増やすのがE-03の代入にあたります。つまり、この小さな処理の中に、カテゴリEでこれまで学んできた道具が全部組み合わさっています。繰り返しは単独で使うものではなく、分岐や代入と一緒に働く土台なのだと捉えてください。

このスライドのポイント

  • 日報の一覧を1件ずつ見ていく=繰り返し
  • その1件が今週かを判定=条件分岐(E-05)
  • 今週なら件数を1増やす=代入(E-03)
  • これまでの道具が全部組み合わさる

技術サンプル——合計を求めるループ

技術サンプル——合計を求めるループ

サンプルを見てみましょう。pricesという値の並びを用意し、totalを0から始めます。forの繰り返しでは、1周ごとにpへ次の価格が入り、totalへ足し込まれていきます。3周まわるうちに、totalは0から1200、2000、2500へと育っていきます。読み方のポイントは、pが周ごとに次の値へ切り替わっていくのに対して、totalは周をまたいで値をため込んでいく点です。AIには「このループの1周目・2周目で、各変数の値はどうなっていますか」と聞くと、1周ずつ動きを確かめられます。

ループの中の変数と、外の変数

ループの中の変数と、外の変数

混同しやすいのが、ループの中の変数と外の変数の役割の違いです。先ほどのサンプルでいえば、pはループの中で毎周まるごと新しい値に入れ替わります。一方のtotalは、ループの外で用意されていて、毎周少しずつ値をため込んで育っていきます。同じ「変数」という言葉でも、毎周リセットされる役と、値をため込んでいく役の2種類があるわけです。この違いを見分けられるようになると、ループのコードがぐっと読みやすくなります。

このスライドのポイント

  • ループの中の変数(p)=毎周まるごと新しい値に入れ替わる
  • ループの外の変数(total)=周をまたいで値をため込み、育っていく
  • 同じ「変数」でも、リセットされる役とため込む役の2種類がある
  • この違いが見分けられると、ループが読みやすくなる

バイブコーディングでの確認点

バイブコーディングでの確認点

バイブコーディングでの確認点です。AIにループを書かせたら、「終了条件は何ですか」「データが0件のときはどうなりますか」を必ず確認してください。終了条件があいまいだと無限ループの危険があり、0件のときの動きは見落とされがちだからです。なお、件数がとても多いときに処理が遅くなる話は、カテゴリEの最終回であるE-10で扱います。この講義の段階では、まず「止まる条件があるか」と「0件のときにどうなるか」の2点を押さえておきましょう。

このスライドのポイント

  • AIにループを書かせたら「終了条件は何ですか」を確認(無限ループ防止)
  • あわせて「データが0件のときはどうなりますか」を確認(見落としがち)
  • 件数がとても多いときの遅さの話は、E-10で扱う予告
  • まずは「止まる条件」と「0件の場合」を押さえる

まとめと次回

まとめと次回

最後に一問一答です。終了条件のないループを何と呼ぶでしょうか。……答えは、無限ループです。止まる条件を欠くと、プログラムは永遠に回り続けてしまいます。30秒まとめです。繰り返しは終了条件を満たすまで同じ処理を回す構造で、1周分を理解すれば全体が読め、終了条件を欠くと無限ループになる。この3点を押さえてください。次回のE-07では、この処理のまとまりに名前を付けて何度でも再利用する、関数へ進みます。関連資料は「テスト観点プロンプト50」と「エラー文の読み方」です。

このスライドのポイント

  • 一問一答: 終了条件のないループを何と呼ぶ? → 無限ループ
  • 30秒まとめ: 繰り返しは終了条件まで同じ処理を回す構造。1周分を理解すれば全体が読め、終了条件を欠くと無限ループ
  • 次回: E-07 関数(処理に名前を付けて再利用する)
  • 関連資料: 「テスト観点プロンプト50」「エラー文の読み方」