【こうぞうかぷろぐらみんぐ】

構造化プログラミング とは?

💡 「順番に」「もしも」「繰り返し」の3つだけで何でも書ける魔法のルール
📌 このページのポイント
3つの制御構造 順次 処理A 処理B 処理C 上から順に実行 選択(分岐) 条件 Yes 処理A No 処理B 条件で処理を分ける 反復(ループ) 条件 処理 終了 条件を満たす間繰り返す この3つだけで あらゆる処理を表現できる
構造化プログラミングのイメージ
ひよこ ひよこ

構造化プログラミングって何?

ペンギン先生 ペンギン先生

プログラムを「順次」「選択」「反復」の3つの構造だけで書こうという考え方だよ。昔はgoto文であちこちにジャンプするコードが多くて、まるでスパゲッティみたいに絡まって読めなかったんだ。それを解決するために生まれた手法だよ

ひよこ ひよこ

3つの構造ってどういうもの?

ペンギン先生 ペンギン先生

「順次」は上から順番に実行すること。「選択」はif文のように条件で処理を分けること。「反復」はfor文やwhile文のように繰り返すこと。この3つだけで、実はどんな処理でも書けることが数学的に証明されてるんだよ

ひよこ ひよこ

goto文ってそんなにダメなの?

ペンギン先生 ペンギン先生

ダイクストラという有名な学者が「Go To Statement Considered Harmful」という論文で問題提起したんだ。goto文を多用すると、処理があちこちに飛んで流れが追えなくなる。いわゆるスパゲッティコードだね。構造化プログラミングはその解決策として広まったんだよ

ひよこ ひよこ

今のプログラミング言語にも関係あるの?

ペンギン先生 ペンギン先生

大ありだよ。現代の言語はif文、for文、while文が当たり前に備わっているけど、これは構造化プログラミングの考え方がベースになってるんだ。意識しなくても自然と構造化プログラミングをやっている、というくらい定着してるよ

ひよこ ひよこ

オブジェクト指向とはどう違うの?

ペンギン先生 ペンギン先生

構造化プログラミングは「処理の流れ」を整理する考え方で、オブジェクト指向は「データと処理をまとめる」考え方だよ。歴史的には構造化プログラミングが先にあって、その上にオブジェクト指向が発展したんだ。建物でいうと、構造化プログラミングは基礎工事、オブジェクト指向は建築様式みたいなものだね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「構造化プログラミング」って出てきたら「順番・分岐・繰り返しの3パターンでコードを整理する考え方」と思えればだいたいOK!
📖 おまけ:英語の意味
「Structured Programming」 = 構造化されたプログラミング
💬 structured(構造化された)programming(プログラミング)で、コードに規則正しい構造を持たせようという考え方だよ
← 用語集にもどる