プログラミングの用語一覧へ
このページの目次

制御構造とは?

最終更新:2026/08/18

3秒でわかる

上から順に進む処理の流れを、条件分岐と繰り返しで組み替えるための構文。状況に応じた振る舞いを、短いコードにまとめられます。

もう少し詳しく

どういうものか

プログラムは何も書かなければ上から下へ一度だけ流れます。この流れを操作するための構文が制御構造で、大きく3つに分かれます。順次 (書いた順に実行)、分岐 (条件で進む先を変える)、反復 (条件が続く間くり返す) です。

具体的には if else switch が分岐、for while が反復にあたります。break continue return は、その流れの途中から抜けたり次の周回へ飛ばしたりする補助です。

なぜ必要か

分岐が無ければ、会員と非会員で表示を変えることも、在庫切れのときだけ注意書きを出すこともできません。反復が無ければ、100件のデータを処理するのに100行を書き並べることになり、件数が変わるたびに書き直しになります。

言語が違っても、この3つの組み合わせで手続きが表現できるという点は変わりません。書き方の違いを覚えるだけで、他の言語へ移りやすいのはそのためです。

具体例

scores = [82, 45, 91, 67, 30] passed = 0 for score in scores: if score >= 80: print(f"{score} 点 優秀") passed += 1 elif score >= 60: print(f"{score} 点 合格") passed += 1 else: print(f"{score} 点 再試験") print(f"合格 {passed} 人 / {len(scores)} 人中") # while は終了条件を自分で動かす count = 3 while count > 0: print(count) count -= 1

つまずきやすいところ

境界の条件を1つずらす誤りが最も多く、>=> の取り違えや、range(1, 10) が10を含まないことに気づかない形で現れます。境界そのものの値を入力にして動かすと、その場で判明します。

while の条件を更新し忘れると無限ループになります。カウンタを減らす行がループの中にあるか、if の内側に入り込んでいないかを見ます。

反復の途中でその対象そのものを書き換えるのも事故のもとです。リストを回しながら要素を削除すると、位置がずれて飛ばされる要素が出ます。新しいリストを作って入れ替える形にすると安全です。

分岐が5段6段と続くときは、条件の並べ方を見直す合図です。値と処理の対応表 (辞書やマップ) に置き換えると、条件が増えても行が増えません。

覚え方

「順次・分岐・反復」の3語で足ります。どんな複雑な処理も、この3つの入れ子として読み解けます。

知識のつながり

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

現在地制御構造プログラミング

LEARN BY DOING

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

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

この用語を扱うコース

コース

Python入門:基礎文法編

74レッスン
コース

JavaScript入門:コードを動かす

23レッスン
コース

C言語入門 基礎文法編

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