C言語のおさらい 構造化プログラミングの考え方

構造化プログラミング

プログラムを作成するときに1番大切なことは誰にでもわかりやすいプログラムを作成すること

では、どうするか?

これに対する回答として1968年にオランダのダイクストラが提唱した構造化プログラミング

三つの基本構造を組み合わ、一つの処理を一つの入り口と一つの出口によって構成する、という考え方。

三つの基本構造

順次型

最も基本となる処理構造。直線型、連接型とも呼ばれる。
順次型は、命令を上から下へ順番に一つずつ実行する。
記述された順番が処理される順番となる構造。


分岐型

条件によって処理の流れが分かれる処理構造。選択型、判断型とも呼ばれる。
分岐型は条件を判定し、その結果によって違う処理を行い、それぞれの実行終了後に合流する構造になっている。分岐型は、処理の流れの分かれ方によって「二分岐型」と「多分岐型」に分かれる。

二分岐型

条件の真と偽によって、二つの処理のうち選択する構造。注意しなければならないのは、片方の処理を実行した場合、もう一方の処理は実行されないということ。

例えば、「縦=横」の条件が真ならば「”正方形”の出力」だけ実行され、「”長方形”の出力」は実行されない。

二分岐型はプログラムで使用される命令から「IF THEN(ELSE)型」とも呼ばれる。


多分岐型

二分岐型だけ使用してプログラムをつくると、処理が面倒になることがある。
これを解消するために考えられたのが多分岐型の処理構造。

ある項目の値などによって選択する処理が三つ以上になる場合に使用される。

多分岐型は、プログラムで使用される命令から「DO CASE 型」とも呼ばれる。


繰り返し型

条件によって命令を複数回繰り返す処理構造。反復型、ループ型も呼ばれる。
「条件が成立するまで処理を繰り返す修了条件」と「条件が成立している間処理繰り返す継続条件」の二つの書き方があり、どちらを使うかはプログラム言語によって決まる。C言語では後者の「継続条件」を使用する。

繰り返し型は、条件を半手するタイミングによって「前判定型」と「後判定型」に分けられる。

前判定型

命令を実行する前に条件の判定を行う構造。フィードバック制御によく使われる。

前判定型は、プログラムで使う命令から「DO WHILE 型」とも呼ばれる。


後判定型

命令を実行した後に条件の判定を行う構造。最初の条件判定によって反復を抜けてしまう場合でも、命令を最低一回は実行する。

後判定型は、プログラムで使用される命令から「REPEAT UNTIL 型」とも呼ばれる。

繰り返し型の注意点

反復を抜ける条件を間違えると、いつまでも同じ命令を繰り返すことになる。
このような状態を「無限ループ」または「永久ループ」という。
処理の都合により故意に無限ループにするのではない限りは、気をつける。






コメント

このブログの人気の投稿

STM32CubeIDEに日本語化プラグインを導入する

STM32F401でLチカをする(LED点灯)

STM32F401-Nucleoでシリアル通信をやってみる