IF ステートメントは、式を計算し、計算結果に応じて実行の流れを制御します。 したがって、IF ステートメントは、条件分岐です。
|
式の中で & または | (もしくはその両方の) 演算子が 使用されている場合は、それらの演算子は、各種演算の組み合わせに 説明した方法で計算されます。
それぞれのユニットには、ラベルを付けることも、条件接頭語を付けることもできます。
IF は複合ステートメントです。 最後のユニットを終了させるセミコロンは、IF ステートメントも終了させます。
ストリング式のいずれかのビットが '1'B であれば、 unit1 が実行され、unit2 は存在していても無視されます。 すべてのビットが '0'B であるか、 ストリングがヌルであれば、unit1 は無視され、 unit2 (存在していれば) が実行されます。
IF ステートメントはネストさせることができます。 つまり、一方または両方のユニットが IF ステートメントであってもかまいません。 それぞれの ELSE は、同じブロックまたは DO グループに含まれている IF ステートメントのうち、最も内側にあって、しかも対応する ELSE を持っていない IF に関連付けられます。したがって、所要の制御順序を指定するために、ヌル・ステートメントを持つ ELSE が必要になることがあります。 例えば、B および C が定数である場合、
if A = B then
·
·
·
else if A = C then
·
·
·
else
·
·
·
上記の例は、次の例と同等ですが、より巧みにコード化されています。
select( A ); when ( B )
·
·
·
when ( C )
·
·
·
·
·
·
end;