制御構造 【control structure】 制御フロー / control flow
概要
制御構造(control structure)とは、コンピュータプログラムで、命令が実行される流れを定めたもの。また、プログラミング言語の仕様や構文のうち、命令の流れを定義することができるもの。命令の出現順、記述順の通りに順番に命令を実行する「順次構造」(sequence)、条件によって実行する命令の流れがいくつかに分岐する「選択構造」(selection)あるいは「分岐構造」、同じ命令の流れを繰り返し実行する「反復構造」(iteration)あるいは「繰り返し構造」(repetition)の3つを基本とする考え方が多い。
また、方法論や言語の違いにより、これらに加えて、プログラム中の任意の別の箇所に実行の流れを移す「無条件分岐」(ジャンプ命令、goto文)や、別の命令群に流れを移し、終わると元の場所に流れを戻す「サブルーチン」(呼び出し、コール)、プログラム終端以外の箇所で実行を終わらせる「停止」(終了)などを加える場合もある。
プログラミング言語における制御構造
機械語やアセンブリ言語(ニーモニック)のようなCPUの構造に忠実な低水準言語では、命令実行の流れを制御する命令として無条件ジャンプ命令と条件ジャンプ命令しか用意されていないことが多く、他の制御構造はこれらと他の命令を組み合わせて実装する。
人間に分かりやすく抽象的なプログラム構造を記述できる高水準言語では、選択や反復を記述するための制御文が用意されていることが多い。言語によって名称や仕様は異なるが、選択構造は「if文」(二分岐)や「switch文」(多分岐)などで、反復構造は「for文」「while文」「do-while文」などで記述することができる。
(2023.2.15更新)