1. 概要
構造化プログラミングは、1960年代に登場した プログラミングの基本パラダイム です。
当時は goto 文を多用した「スパゲッティコード」が横行しており、可読性や保守性が非常に低い状態でした。
その解決策として、プログラムを「順次・分岐・繰り返し」の三つの基本制御構造で書くべきだ と提唱されたのが、構造化プログラミングです。
代表的な論文は Edsger W. Dijkstra による「Go To Statement Considered Harmful」(1968)。
ここから「goto なしでもプログラムは書ける」という思想が広がりました。
2. 特徴
-
3つの基本構造
- 順次(Sequence): 上から下へ命令を実行
- 分岐(Selection): if / switch など条件による分岐
- 繰り返し(Iteration): while / for などループ構造
-
トップダウン設計
大きな問題を小さな手続きに分割して解決する -
モジュール化
サブルーチンや関数でコードを整理
3. メリット
- 可読性が高くなる
- デバッグやテストが容易
- アルゴリズムを明確に表現できる
- 学習コストが低く、初心者にもわかりやすい
4. 代表言語
- C
- Pascal
- ALGOL
- Ada
(いずれも OOP 登場前の主要言語)
5. コード例:FizzBuzz
(1)構造化プログラミング(C)
#include <stdio.h>
int main() {
for (int i = 1; i <= 20; i++) {
if (i % 15 == 0) {
printf("FizzBuzz\n");
} else if (i % 3 == 0) {
printf("Fizz\n");
} else if (i % 5 == 0) {
printf("Buzz\n");
} else {
printf("%d\n", i);
}
}
return 0;
}
順次 → 分岐 → 繰り返し の3つの構造で記述していることがわかります。
6. 他パラダイムとの違い
- OOP:データと振る舞いをオブジェクトにまとめる
- FP:副作用を排除し、関数を合成して表現
- Structured:制御構造を整理し、読みやすく書く
まとめ
- 構造化プログラミングは「可読性・保守性」を改善するために誕生
- 基本は 順次・分岐・繰り返し の3構造
- その後の OOP・FP の基礎 となった