制御構造(せいぎょこうぞう)は、コンピュータ・プログラミング言語、特に手続き型プログラミングや命令型プログラミングにおいて、ループや飛び越しなどといった、手続き(プロシージャ)中の実行順を順次実行から変化させたり、サブルーチン呼出しやその戻り、などといった制御を行う「文 (プログラミング) 」などの構造(言語の構成要素)である。 制御構造の種類は言語によって様々だが、典型的には以下のようなものがある(用語「ブロック」については、ブロック (プログラミング) の記事を参照)。 * 無条件に実行箇所を移動する(無条件の分岐命令、ジャンプ) * 何らかの条件の成立・不成立に従い、ブロックの実行・不実行を選択する(条件付き分岐命令、選択) * ブロックを繰り返し実行する(ループ) * ジャンプの一種だが、その続きに戻れるもの(サブルーチン呼出、コルーチン) * 継続(特にcall/cc) * プログラムの停止(理論的には重要だが(停止性問題を参照)、実際的にはexitシステムコールなど、OSのプロセス制御機構を使うことが専らであり、言語機能として制御構造で持つ意味は無い) 「分岐命令」も参照