読み方 : せんたくこうぞう

選択構造【selection】分岐構造/branching

概要

選択構造とは、コンピュータプログラムの命令実行の流れの一つで、実行時に評価する条件によって、次の命令を実行するか、指定されたメモリ上の位置に移行するか分岐するもの。
選択構造のイメージ画像

コンピュータCPUは通常、プログラムカウンタが示す番地から命令を順に読み出して実行するが、条件判定を伴う分岐命令が現れると、比較や論理演算の結果に基づいて次に参照する番地を変更する。条件が真の場合に指定された位置へ移動する「条件付き分岐」と、無条件に移動する「無条件分岐」があり、いずれもジャンプ命令として実装される。

高水準プログラミング言語ではif文else文else if文、switch文case文三項演算子などがこれに対応し、コンパイラインタプリタにより比較命令と分岐命令の組み合わせへ変換される。高水準言語の構文では、複数の条件を段階的に評価する多分岐や、不等号などを用いた数値の範囲判定、論理積論理和による複合条件などを記述することができる。

選択構造は反復構造順次構造と並ぶ基本的な制御構造の一つとされ、処理の分岐点を形成する。反復構造では条件が満たされる間に同一の命令列を繰り返し実行するが、内部では条件判定と分岐が用いられているため、両者は実装上共通する要素を持つ。また、例外処理におけるcatch節の選択や、パターンマッチング、ガード節、条件式による早期リターンなども分岐の考え方を拡張したものである。

近年の言語では、match式やswitch式のように値を返す分岐構文が導入され、分岐結果を式として扱う記述も一般的になっている。なお、分岐の多用は可読性の低下や分岐予測失敗による性能低下を招く場合があるため、高速性を特に意識するプログラムでは条件を整理したり、テーブル駆動方式やポリモーフィズムなどの代替手法が適用されることがある。

他の辞典等による「選択構造」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。