DECIDE FOR |
FIRST
|
CONDITION
|
||
EVERY
|
||||
{WHEN logical-condition statement }
|
||||
[WHEN ANY statement ]
|
||||
[WHEN ALL statement ]
|
||||
WHEN NONE statement
|
||||
END-DECIDE |
このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
関連ステートメント:DECIDE ON | IF | IF SELECTION | ON ERROR
関連機能グループ:「論理条件の処理」
DECIDE FOR
ステートメントは、複数の条件(ケース)に応じて 1 つ以上のアクションを実行するかどうかを判定します。
注意:
ある条件のもとでは何も実行しない場合は、DECIDE FOR
ステートメントの対応する節にステートメント IGNORE
を指定する必要があります。
FIRST CONDITION | 最初に真になった条件のみが処理されます。 「例 1」も参照してください。 |
---|---|
EVERY CONDITION | 真になった条件がすべて処理されます。 「例 2」も参照してください。 |
WHEN logical-condition statement | この節では、処理される論理条件(複数可)を指定します。 『プログラミングガイド』の「論理条件基準」を参照してください。 |
WHEN ANY statement | WHEN ANY では、任意の論理条件が真になったときに実行されるステートメント(複数可)を指定できます。
|
WHEN ALL statement | WHEN ALL では、すべての論理条件が真になったときに実行されるステートメント(複数可)を指定できます。 この節は、EVERY が指定された場合にのみ適用されます。
|
WHEN NONE statement | WHEN NONE では、真になっている論理条件が 1 つもないときに実行されるステートメント(複数可)を指定できます。
|
END-DECIDE | DECIDE FOR ステートメントを終了するには、Natural 予約語 END-DECIDE を使用する必要があります。
|
** Example 'DECEX1': DECIDE FOR (with FIRST option) ************************************************************************ DEFINE DATA LOCAL 1 #FUNCTION (A1) 1 #PARM (A1) END-DEFINE * INPUT #FUNCTION #PARM * DECIDE FOR FIRST CONDITION WHEN #FUNCTION = 'A' AND #PARM = 'X' WRITE 'Function A with parameter X selected.' WHEN #FUNCTION = 'B' AND #PARM = 'X' WRITE 'Function B with parameter X selected.' WHEN #FUNCTION = 'C' THRU 'D' WRITE 'Function C or D selected.' WHEN NONE REINPUT 'Please enter a valid function.' MARK *#FUNCTION END-DECIDE * END
#FUNCTION A #PARM Y
PLEASE ENTER A VALID FUNCTION #FUNCTION A #PARM Y
** Example 'DECEX2': DECIDE FOR (with EVERY option) ************************************************************************ DEFINE DATA LOCAL 1 #FIELD1 (N5.4) END-DEFINE * INPUT #FIELD1 * DECIDE FOR EVERY CONDITION WHEN #FIELD1 >= 0 WRITE '#FIELD1 is positive or zero.' WHEN #FIELD1 <= 0 WRITE '#FIELD1 is negative or zero.' WHEN FRAC(#FIELD1) = 0 WRITE '#FIELD1 has no decimal digits.' WHEN ANY WRITE 'Any of the above conditions is true.' WHEN ALL WRITE '#FIELD1 is zero.' WHEN NONE IGNORE END-DECIDE * END
#FIELD1 42
Page 1 05-01-11 14:56:26 #FIELD1 is positive or zero. #FIELD1 has no decimal digits. Any of the above conditions is true.