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 an explanation 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.