0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Clean Architecture】Structured Programming(構造化プログラミング)とは

Posted at

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 の基礎 となった

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?