プログラミングの用語一覧へ
このページの目次
プログラミング中級図解あり

反復とは?

最終更新:2026/08/18

3秒でわかる

同じ処理を条件が続く間くり返す制御構造。for と while が代表で、件数の分からないデータをまとめて処理するときの土台になります。

30秒図解

反復はforでscoresの72、88、95、60、81を順に処理し、whileでnが0になるまで10で割る処理を4回くり返す
同じ本体を1か所だけ直せば、全件の処理に反映される

もう少し詳しく

どういうものか

反復は、同じ処理を何度もくり返し実行する制御構造です。ループとも呼ばれます。代表は 2 つあり、くり返す回数や対象がはじめから決まっているときの for終了条件だけが決まっていて何回まわるか分からないときの while です。

for は「リストの全要素に対して」「0 から 9 まで」のように対象が確定している場面に向きます。while は「ユーザーが正しい値を入れるまで」「残高が 0 になるまで」のように、何回で終わるか事前に計算できない場面に向きます。

なぜ必要か

処理するデータの件数は、コードを書く時点では分かりません。ユーザーが 3 人のときもあれば 3 万人のときもあります。反復を使わずに同じ行をコピーして並べる書き方は、件数が変わった瞬間に破綻します。

もうひとつは、変更が 1 か所で済むことです。100 行のコピーに同じバグがあれば 100 か所直す必要がありますが、ループなら本体の 1 か所だけを直せば全件に反映されます。

具体例

同じ集計を Python と Java で書きます。件数が増えてもコードは変わりません。

scores = [72, 88, 95, 60, 81] total = 0 for s in scores: # 対象が決まっているので for total += s print(total / len(scores)) # 79.2 # 終了条件だけが決まっている場合は while n = 1000 digits = 0 while n > 0: n //= 10 digits += 1 print(digits) # 4
int[] scores = {72, 88, 95, 60, 81}; int total = 0; for (int s : scores) { total += s; } System.out.println((double) total / scores.length); // 79.2

つまずきやすいところ

  • while の中で条件に使う変数を更新し忘れ、無限ループになる。プログラムが返ってこないときは、まず条件に出てくる変数がループ内で変化しているか確認します

  • ループの回数が 1 回ずれる。0 から数えるのか 1 から数えるのか、終端を含むのか含まないのかを、最初と最後の 1 回だけ手で追うと確実です。Python の range(1, 5) は 5 を含みません

  • ループの中でリストに要素を追加したり削除したりして、途中の要素が飛ばされる。変更したいときは新しいリストを作って結果を入れます

  • 合計用の変数をループの中で 0 に初期化してしまい、最後の 1 件だけの値になる。初期化はループの前です
  • 似た用語との違い

    反復と再帰はどちらもくり返しですが、反復は同じ関数の中でカウンタを進め、再帰は自分自身を呼び出して段を深くします。多くの言語では反復のほうが速く、スタック溢れの心配もありません。

    覚え方

    回数が読めるなら for、条件が尽きるまでなら while。この振り分けだけで、日常のループはほぼ書けます。

    知識のつながり

    サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

    現在地反復プログラミング

    LEARN BY DOING

    この用語を、教材で使ってみる

    直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

    この用語を扱うコース

    コース

    Python入門:基礎文法編

    74レッスン
    コース

    JavaScript入門:コードを動かす

    23レッスン
    コース

    Java入門:基礎文法編

    69レッスン
    Pythonコースの全編を見る