You can use the EVALUATE statement instead of a series of nested IF statements to test several conditions and specify a different action for each. Thus you can use the EVALUATE statement to implement a case structure or decision table.
You can also use the EVALUATE statement to cause multiple conditions to lead to the same processing, as shown in these examples:
Example: EVALUATE using THRU phrase
Example: EVALUATE using multiple WHEN phrases
In an EVALUATE statement, the operands before the WHEN phrase are referred to as selection subjects, and the operands in the WHEN phrase are called the selection objects. Selection subjects can be identifiers, literals, conditional expressions, or the word TRUE or FALSE. Selection objects can be identifiers, literals, conditional or arithmetic expressions, or the word TRUE, FALSE, or ANY.
You can separate multiple selection subjects with the ALSO phrase. You can separate multiple selection objects with the ALSO phrase. The number of selection objects within each set of selection objects must be equal to the number of selection subjects, as shown in this example:
Example: EVALUATE testing several conditions
Identifiers, literals, or arithmetic expressions that appear within a selection object must be valid operands for comparison to the corresponding operand in the set of selection subjects. Conditions or the word TRUE or FALSE that appear in a selection object must correspond to a conditional expression or the word TRUE or FALSE in the set of selection subjects. (You can use the word ANY as a selection object to correspond to any type of selection subject.)
The execution of the EVALUATE statement ends when one of the following conditions occurs:
WHEN phrases are tested in the order that they appear in the source program. Therefore, you should order these phrases for the best performance. First code the WHEN phrase that contains selection objects that are most likely to be satisfied, then the next most likely, and so on. An exception is the WHEN OTHER phrase, which must come last.
related tasks
Coding a choice of actions
related references
EVALUATE statement
(COBOL for Windows Language Reference)
General relation conditions
(COBOL for Windows Language Reference)