💻 COBOL
COBOL EVALUATE Statement
Beginner 🕑 10 min read
👁 0 views
COBOL EVALUATE Statement
The EVALUATE statement is COBOL's case/switch structure for multi-way branching.
Syntax
EVALUATE identifier/expression/TRUE/FALSE
WHEN value-1 [THRU value-2]
statement-1
WHEN value-3
statement-2
WHEN OTHER
statement-3
END-EVALUATE
Example Program
IDENTIFICATION DIVISION.
PROGRAM-ID. EVAL-DEMO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-SCORE PIC 9(3) VALUE 85.
01 WS-GRADE PIC X(1).
01 WS-DAY PIC 9 VALUE 3.
01 WS-DAY-NAME PIC X(10).
PROCEDURE DIVISION.
* EVALUATE with ranges (THRU)
EVALUATE TRUE
WHEN WS-SCORE >= 90
MOVE 'A' TO WS-GRADE
WHEN WS-SCORE >= 80
MOVE 'B' TO WS-GRADE
WHEN WS-SCORE >= 70
MOVE 'C' TO WS-GRADE
WHEN OTHER
MOVE 'F' TO WS-GRADE
END-EVALUATE
DISPLAY 'Grade: ' WS-GRADE
* EVALUATE with specific values
EVALUATE WS-DAY
WHEN 1
MOVE 'Monday' TO WS-DAY-NAME
WHEN 2
MOVE 'Tuesday' TO WS-DAY-NAME
WHEN 3
MOVE 'Wednesday' TO WS-DAY-NAME
WHEN 4 THRU 5
MOVE 'Thu/Fri' TO WS-DAY-NAME
WHEN 6 THRU 7
MOVE 'Weekend' TO WS-DAY-NAME
WHEN OTHER
MOVE 'Invalid' TO WS-DAY-NAME
END-EVALUATE
DISPLAY 'Day: ' WS-DAY-NAME
STOP RUN.
Expected Output
Grade: B
Day: Wednesday
Key Points
- EVALUATE TRUE tests conditions
- EVALUATE identifier tests specific values
- THRU specifies ranges
- WHEN OTHER handles default case
- Cleaner than nested IF statements