IF-THEN-ELSE

IF-THEN-ELSE コマンド シーケンスを使用してコマンドを条件付きで実行します。これを DO-END コマンド シーケンスと併用した場合は、コマンドのグループを条件付きで実行できます。

構文

IF {LASTCC|MAXCC} operator number
THEN[ command |
 DO
 command set
 END]
[ELSE[command |
 DO
 command set
 END]]

パラメーター

LASTCC

直前の機能コマンドから生成された条件コードの値を、演算子で示されたとおりに演算子の後の数字と比較します。条件コードを参照してください。

MAXCC

以前の機能コマンドまたは SET コマンドによって確立された条件コードの最大値を、演算子で示されたとおりに演算子の後の数字と比較して、THEN アクションを実行するかどうかを判断します。

operator

変数と演算子の後の数字を比較します。次の値が指定できます。

演算子 説明
= または EQ 等しい
¬= または NE 等しくない
> または GT より大きい
< または LT より小さい
>= または GE 以上
<= または LE 以下
number

MAXCC または LASTCC と比較する 10 進整数を指定します。アクセス方式サービスへの入口で LASTCC と MAXCC はゼロに初期化されます。

比較には任意の値を使用できます。MFJAMS が設定する標準の値については、条件コードを参照してください。ただし、次の例のように SET 文を使用して任意の値を設定することもできます。

...
IF LASTCC = 0 THEN
 DO
   SET LASTCC = 2 
 END
IF LASTCC = 2...

コメント

IF-THEN-ELSE コマンド シーケンスでテストされたまたは SET コマンドで設定された条件コードをジョブ ステップ間で受け渡すことはできません。ただし、アクセス方式サービス プロセッサーが制御をシステムに戻すときに、以前の機能コマンドまたは SET コマンドによって確立された条件コードの最大値がオペレーティング システムに渡されます。

IF コマンドが THEN または ELSE 句の中に存在する場合、それはネストされた IF コマンドと呼ばれます。指定された最初の IF から開始して最大 10 レベルのネストが許可されます。IF コマンドのネストの中で最も奥にある ELSE 句は最も奥にある THEN 句に関連付けられます。奥から 2 番目の ELSE 句は奥から 2 番目の THEN 句に関連付けられ、以下同様に関連付けられます。ELSE 句を必要としない IF コマンドがある場合、ネスト構造体で ELSE 句が必要とされない限り、null ELSE 句 (ELSE) 付きの THEN 句が続きます。

同一レコード内で THEN または ELSE の後に継続文字またはコマンドが続いていない場合、その THEN または ELSE はアクションを実行しません。null コマンドは、IF-THEN-ELSE コマンド シーケンスのバランスを保つ ELSE コマンドをサポートし、null THEN コマンドを許可します、基本的に、このヌル コマンドは、その後にコマンド継続文字が続かない THEN または ELSE コマンドです。

null ELSE コマンドを示すには、次のように指定します。

ELSE

null THEN コマンドを示すには、次のように指定します。

IF ... THEN
ELSE ...