DECIDE FOR |
|
FIRST
|
|
CONDITION
|
EVERY
|
||||
{WHEN
logical-condition
statement
|
||||
[WHEN ANY
statement
|
||||
[WHEN ALL
statement
|
||||
WHEN NONE
statement
|
||||
END-DECIDE |
||||
This document covers the following topics:
For explanations of the symbols used in the syntax diagram, see Syntax Symbols.
Related Statements: DECIDE
ON | IF |
IF SELECTION |
ON ERROR
Belongs to Function Group: Processing of Logical Conditions
The DECIDE FOR statement is used to decide for one or more
actions depending on multiple conditions (cases).
Note:
If no action is to be performed under a certain condition,
you must specify the statement IGNORE in the corresponding clause of
the DECIDE FOR statement.
| Syntax Element | Description |
|---|---|
FIRST CONDITION |
Processing of First Condition Only:
Only the first true condition is to be processed. See also Example 1. |
EVERY CONDITION |
Processing of Every Condition:
Every true condition is to be processed. See also Example 2. |
WHEN
logical-condition
statement
|
Logical Condition(s) to be Processed:
With this clause, you specify the logical condition(s) to be processed. See the section Logical Condition Criteria in the Programming Guide. |
WHEN
ANY statement
|
WHEN ANY Clause:
With |
WHEN
ALL statement
|
WHEN ALL Clause:
With This clause is applicable only if |
WHEN
NONE statement
|
WHEN NONE Clause:
With |
END-DECIDE
|
End of DECIDE FOR Statement:
The Natural reserved word |
** 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 #PARM
#FUNCTION A #PARM Y Please enter a valid function.
** 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.