Simple Example of the EVALUATE Statement:
EVALUATE MENU-INPUT
WHEN "0"
PERFORM INIT-PROC
WHEN "1" THRU "9"
PERFORM PROCESS-PROC
WHEN "R"
PERFORM READ-PARMS
WHEN "X"
PERFORM CLEANUP-PROC
WHEN OTHER
PERFORM ERROR-PROC
END-EVALUATE.
The Equivalent IF Statement:
IF (MENU-INPUT = "0") THEN
PERFORM INIT-PROC
ELSE
IF (MENU-INPUT >= "1") AND (MENU-INPUT <= "9") THEN
PERFORM PROCESS-PROC
ELSE
IF (MENU-INPUT = "R") THEN
PERFORM READ-PARMS
ELSE
IF (MENU-INPUT = "X") THEN
PERFORM CLEANUP-PROC
ELSE
PERFORM ERROR-PROC
END-IF
END-IF
END-IF
END-IF.
The following is a more complex example of an EVALUATE statement and the equivalent IF statement.
Complex Example of the EVALUATE Statement:
EVALUATE A = B ALSO C > D ALSO TRUE
WHEN TRUE ALSO TRUE ALSO E = F + 15
imp-stat-1
WHEN TRUE ALSO TRUE ALSO E > 12
imp-stat-2
WHEN TRUE ALSO FALSE ALSO ANY
imp-stat-3
WHEN FALSE ALSO TRUE ALSO ANY
imp-stat-4
WHEN FALSE ALSO FALSE ALSO ANY
imp-stat-5
END-EVALUATE.
The Equivalent IF Statement:
IF A = B THEN
IF C > D THEN
IF E = F + 15 THEN
imp-stat-1
ELSE
IF E > 12 THEN
imp-stat-2
END-IF
END-IF
ELSE
imp-stat-3
END-IF
ELSE
IF C > D THEN
imp-stat-4
ELSE
imp-stat-5
END-IF
END-IF.
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.