DO IF (IF)

DO IF-END IF 構造体は、1 つ以上の論理式に基づいて、ケースのサブセットに対して 1 つ以上の変換を条件付きで実行します。 DO IF の論理式が真でない場合、構造内で ELSE コマンドを使用して 1 つ以上の変換を実行できます。 構造内の ELSE IF コマンドを使用すると、さらに制御を行うことができます。

DO IF [(]logical expression[)]

transformation commands

[ELSE IF [(]logical expression[)]]

transformation commands

[ELSE IF [(]logical expression[)]]
  .
  .
  .
[ELSE]

transformation commands

END IF

このコマンドは、アクティブなデータ・セットを読み取りません。 これは保管され、データ・セットを読み取る次のコマンドで実行が保留されます。 詳しくは、トピック「 コマンドの順序 」を参照してください。

論理式では、以下の関係演算子を使用できます。

表 1. 関係演算子
記号 定義
EQ または = 等しい
NE または ~ = または ¬ = または <> 等しくない
LT または < 次の値より小さい
LE または < = 以下
GT または > より大きい
GE または> = より大きいか等しい

論理式では、以下の論理演算子を使用できます。

表 2. 論理演算子
記号 定義
AND または & 両方の関係が真でなければなりません
OR または | どちらの関係も真である可能性があります
NOT 式の結果を反転します。

DO IF (YearHired GT 87).
COMPUTE            Bonus = 0.
ELSE IF (Dept87 EQ 3).
COMPUTE            Bonus = .1*Salary87.
ELSE IF (Dept87 EQ 1).
COMPUTE            Bonus = .12*Salary87.
ELSE IF (Dept87 EQ 4).
COMPUTE            Bonus = .08*Salary87.
ELSE IF (Dept87 EQ 2).
COMPUTE            Bonus = .14*Salary87.
END IF.