SELECT グループを使用すれば、複数経路の条件付き分岐を行うことができます。 SELECT グループは、SELECT ステートメント、オプションの WHEN ステートメント (1 つまたは複数)、オプションの OTHERWISE ステートメント、および END ステートメントで構成されます。
省略形: OTHERWISE の場合は OTHER
保管されたものと同じ値を持つ式が見付かると、その時点で、 WHEN ステートメント内の式の計算は終了し、 その WHEN ステートメントのユニットが実行されます。 保管されたものと同じ値を持つ式が見付からなかった場合は、 OTHERWISE ステートメントのユニットが実行されます。
WHEN ステートメントにラベルを付けることはできません。
OTHERWISE ステートメントを省略した場合、SELECT グループが 実行された結果としてどのユニットも選択されなかったときは、 ERROR 条件が起こります。
OTHERWISE ステートメントにラベルまたは条件接頭語を付けてはなりません。
exp1 を省略した場合、それぞれの exp2 が計算され、必要に応じてビット・ストリングに変換されます。 そのストリングのいずれかのビットが '1'B であれば、 その WHEN ステートメントのユニットが実行されます。 すべてのビットが 0 であるか、そのストリングがヌルであれば、 OTHERWISE ステートメントのユニットが実行されます。
WHEN または OTHERWISE ステートメントのユニットが実行されたあとは、 そのユニット内で制御の通常の流れが変更されたのでない限り、 SELECT グループの次のステートメントに制御が渡されます。
exp1 を指定した場合は、それぞれの exp2 は、 次の比較式がスカラー・ビット値を持たねばなりません。
(exp1) = (exp2)
exp1 と exp2 は、両方ともスカラー式でなければなりません。 したがって、配列、構造体、および和集合が exp1 か exp2 のいずれかで使用される可能性がありますが、計算後の式はスカラー値でなければなりません。