プログラム言語をつつく2-構造化プログラミング。わかりやすくまとめよう。
第一弾は構造化プログラミングだよ。
構造化プログラミングとはエドガー・ダイクストラさん達が提唱した理論で、 全てのプログラムは順次構造、 繰り返し構造、 選択構造で表現でき、 それをサブルーチン化することにより保守性がよい高品質なプログラムが組めるというものさ。
現在では当たり前のように思えるけど、当時(1960年頃)はどうやらGoto文を使った非常に読みずらいプログラムが跳梁跋扈していたらしいね。 このGoto文は確かに有用で現在にも残っているけど、上から下へプログラムが流れないから多用するととても見づらいんだ。 それを改善するために提唱されたのが構造化プログラミングって訳さ。 ボクが産まれる前の事だから見たことないけど、以前勤めていたブラック企業で可読性0のプログラムと対面したことあるから なんとなくわかるよ。きっと怒りが込み上げるんだろうね。 前置きはこれぐらいにして個別に見ていこう。とぉー。
まずは順次構造~解説するピョ。 順次構造というのは、1個の処理が終わったら次の処理を行うというふうに、 順番に処理をしていくプログラムなんだ。 制御構文が一切ない状態のプログラムだと思えばいいよ。 これを直線型と呼ぶピヨね。 これは特に説明の必要がないピヨね。
次は繰り返し構造ピヨ。 これはC言語のfor文とかVBのFor文とかを思い浮かべてくれればいいよ。 これを細分化すると、while文の様にループ条件を最初にチェックする前判定繰り返しと、 do/while文の様にループ条件を最後にチェックする後判定繰り返しがあるピヨ。 そうそう、for文は紛らわしいけど列挙型繰り返しと呼ばれているんだ。 じゃあ、繰り返し構造はこれぐらいにして次へ行こう!
最後は制御構造ピョ。 これはif文の構造なんだ。これはみんなお馴染だよね。 順次構造だけでは不便だから流れを分岐するこれは自然な発想だよね。 目ざとい読者はswitch文はどうなんだ?とツッコミを入れた思う。 それは他方向分岐と呼ばれるものなんだ。 だからVB.NETではCase句に判定条件をかけるんだろうね。 じゃあ制御構造についての説明はおわり。
全部の説明が終わったから纏めに入るピピョ。 この構造化プログラミングは現在に残る大切な考え方なんだ。 オブジェクト指向だとかアスペクト指向とかエージェント指向などいっぱいあるけど、 この構造化プログラミングは全ての基礎となる構造だからしっかりマスターしよう。 これら三つの構造をしっかりサブルーチンとしてまとめると 読みやすいプログラムになるよ。 この基礎的考えさえマスターすれば、オブジェクト指向などもわかりやすいと思うよ。 長い文章を読んでくれて有難う。 これで終わるよ。 じゃあねー。