Condition Names (88 Level)
Problem Description
Use 88-level condition names for readable conditions.
Expected Output
Self-documenting conditional code
Hints
88 level defines named conditions for field values.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. COND88.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STATUS PIC X(1).
88 STATUS-ACTIVE VALUE "A".
88 STATUS-INACTIVE VALUE "I".
88 STATUS-PENDING VALUE "P".
88 STATUS-VALID VALUE "A" "I" "P".
01 WS-GENDER PIC X(1).
88 IS-MALE VALUE "M".
88 IS-FEMALE VALUE "F".
01 WS-SCORE PIC 9(3).
88 SCORE-EXCELLENT VALUE 90 THRU 100.
88 SCORE-GOOD VALUE 70 THRU 89.
88 SCORE-PASS VALUE 50 THRU 69.
88 SCORE-FAIL VALUE 0 THRU 49.
01 WS-EOF PIC 9 VALUE 0.
88 END-OF-FILE VALUE 1.
88 NOT-END-OF-FILE VALUE 0.
PROCEDURE DIVISION.
MOVE "A" TO WS-STATUS.
IF STATUS-ACTIVE
DISPLAY "STATUS IS ACTIVE"
END-IF.
IF STATUS-VALID
DISPLAY "STATUS IS VALID"
END-IF.
MOVE 85 TO WS-SCORE.
EVALUATE TRUE
WHEN SCORE-EXCELLENT DISPLAY "EXCELLENT!"
WHEN SCORE-GOOD DISPLAY "GOOD JOB!"
WHEN SCORE-PASS DISPLAY "YOU PASSED"
WHEN SCORE-FAIL DISPLAY "FAILED"
END-EVALUATE.
* SET to change 88-level
SET END-OF-FILE TO TRUE.
IF END-OF-FILE
DISPLAY "EOF REACHED"
END-IF.
STOP RUN.
Explanation:
88-level makes code readable. Use VALUE for single, THRU for range. SET to change.