IDENTIFICATION DIVISION. PROGRAM-ID. TEST22. ENVIRONMENT DIVISION. CONFIGURATION SECTION. * SPECIAL-NAMES. * DECIMAL-POINT IS PERIOD. * INPUT-OUTPUT SECTION. * FILE-CONTROL. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 01 WS-IDX PIC 9(3). 01 WS-IDX1 PIC 9(3). 01 WS-IDX2 PIC 9(3). 01 IDX PIC 9(3). 01 IDX2 PIC 9(3) COMP. * 01 IDX1 PIC 9(3). 01 WS-RCODE PIC Z(4)9 VALUE ZERO. 01 WS-AGE-GROUP PIC 9(2). 88 WS-MINOR VALUE 1 THRU 18. 88 WS-YADULT VALUE 19, 20, 21, 22. 88 WS-ADULT VALUE 21 THRU 99. 01 WS-DEPT-GROUP1 PIC X. 88 WS-ACCOUNTING1 VALUE 'A', 'B', 'C'. 88 WS-OTHER1 VALUE 'D' THRU 'Z'. 01 WS-DEPT-GROUP PIC 9. 88 WS-ACCOUNTING VALUE 2, 3. 88 WS-OTHER VALUE 4 THRU 9. 01 WS-STATUS PIC X(1). 88 WS-DIVORCED VALUE 'D'. 88 WS-MARRIED VALUE 'M'. 88 WS-SINGLE VALUE 'S'. 01 WS-FULL-NAME PIC X(20). 01 WS-NUMBER pic X(10). PROCEDURE DIVISION. A-000. DISPLAY "BEGIN: IF/ELSE TESTS". MOVE 1 TO IDX. MOVE 99 TO WS-IDX. MOVE 1 TO WS-IDX1. MOVE 2 TO WS-IDX2. MOVE 'M' TO WS-STATUS. MOVE 21 TO WS-AGE-GROUP. MOVE 'PETER PAN' TO WS-FULL-NAME. MOVE "1234" TO WS-NUMBER. MOVE 2 TO WS-DEPT-GROUP. MOVE 'A' TO WS-DEPT-GROUP1. * MOVE 'D' TO WS-DEPT-GROUP1. DISPLAY "A-100: WS-IDX1 ==" WS-IDX1 " WS-IDX2 ==" WS-IDX2 " WS-IDX ==" WS-IDX. DISPLAY "A-100: WS-STATUS ==" WS-STATUS ": WS-AGE-GROUP ==" WS-AGE-GROUP ":". DISPLAY "A-100: WS-FULL-NAME ==" WS-FULL-NAME ":". PERFORM A-100. PERFORM A-200. PERFORM A-300. PERFORM A-400. PERFORM A-500. PERFORM A-600. PERFORM A-650. PERFORM A-700. PERFORM A-750. PERFORM A-800. PERFORM A-900. PERFORM A-1000. PERFORM A-1100. PERFORM A-1200. PERFORM A-1300. DISPLAY "END : IF/ELSE TESTS". MOVE RETURN-CODE TO WS-RCODE. DISPLAY "WS-RCODE=" WS-RCODE. STOP RUN. A-100. DISPLAY "ENTER A-100:". IF ( WS-IDX1 EQUAL 1 ) AND ( WS-IDX2 EQUAL 2 ) THEN DISPLAY "TEST1 (True): WS-IDX1 == 1 AND WS-IDX2 == 2" ELSE DISPLAY "TEST1 (False): WS-IDX1 != 1 OR WS-IDX2 != 2" END-IF. DISPLAY "EXIT A-100". A-200. DISPLAY "ENTER A-200:". IF WS-IDX1 EQUAL 3 DISPLAY "TEST2 (True): WS-IDX1 == 3" ELSE DISPLAY "TEST2 (False): WS-IDX1 != 3" END-IF. DISPLAY "EXIT A-200". A-300. DISPLAY "ENTER A-300:". IF WS-IDX EQUAL 99 DISPLAY "TEST3 (True): WS-IDX == 99" ELSE DISPLAY "TEST3 (False): WS-IDX != 99". DISPLAY "EXIT A-300". A-400. DISPLAY "ENTER A-400:". IF WS-IDX NOT EQUAL 99 DISPLAY "TEST4 (False): WS-IDX != 99" ELSE DISPLAY "TEST4 (True): WS-IDX == 99" END-IF. DISPLAY "EXIT A-400". A-500. DISPLAY "ENTER A-500:". IF WS-MARRIED DISPLAY "TEST5 (True): WS-STATUS == M" ELSE DISPLAY "TEST5 (False): WS-STATUS != M". DISPLAY "EXIT A-500". A-600. DISPLAY "ENTER A-600:". IF WS-ADULT DISPLAY "TEST6 (True): WS-AGE-GROUP >= " WS-AGE-GROUP ELSE DISPLAY "TEST6 (False): WS-AGE-GROUP < " WS-AGE-GROUP. DISPLAY "EXIT A-600". A-650. DISPLAY "ENTER A-650:". IF WS-YADULT DISPLAY "TEST6A (True): WS-AGE-GROUP >= " WS-AGE-GROUP ELSE DISPLAY "TEST6A (False): WS-AGE-GROUP < " WS-AGE-GROUP. DISPLAY "EXIT A-650". A-700. DISPLAY "ENTER A-700:". IF WS-FULL-NAME NUMERIC DISPLAY "TEST7A (True): WS-FULL-NAME ==" WS-FULL-NAME ": (numeric)". IF WS-FULL-NAME ALPHABETIC DISPLAY "TEST7 (True): WS-FULL-NAME ==" WS-FULL-NAME ": (alphabetic)" ELSE DISPLAY "TEST7 (False): WS-FULL-NAME !=" WS-FULL-NAME ": (not alphabetic)". DISPLAY "EXIT A-700". A-750. DISPLAY "ENTER A-750:". IF WS-NUMBER NUMERIC DISPLAY "TEST7A (True): WS-NUMBER ==" WS-NUMBER ": (numeric)" ELSE DISPLAY "TEST7A (False): WS-NUMBER !=" WS-NUMBER ": (not numeric)". DISPLAY "EXIT A-750". A-800. DISPLAY "ENTER A-800:". IF WS-IDX POSITIVE DISPLAY "TEST8 (True): WS-IDX (positive)" ELSE DISPLAY "TEST8 (False): WS-IDX (not positive)". DISPLAY "EXIT A-800". A-900. DISPLAY "ENTER A-900:". MOVE WS-IDX1 TO WS-IDX2. ADD 50 TO WS-IDX2. IF WS-IDX = WS-IDX1 + 50 DISPLAY "TEST9 (True): WS-IDX ==" WS-IDX " WS-IDX1 + 50==" WS-IDX2 ":" ELSE DISPLAY "TEST9 (False): WS-IDX ==" WS-IDX " WS-IDX1 + 50==" WS-IDX2 ":". DISPLAY "EXIT A-900". A-1000. DISPLAY "ENTER A-1000:". * IF WS-OTHER IF WS-ACCOUNTING DISPLAY "TEST10 (True): WS-DEPT-GROUP ==" WS-DEPT-GROUP "== WS-ACCOUNTING" ELSE DISPLAY "TEST10 (False): WS-DEPT-GROUP ==" WS-DEPT-GROUP "!= WS-ACCOUNTING". DISPLAY "EXIT A-1000". A-1100. DISPLAY "ENTER A-1100:". * IF WS-OTHER1 IF WS-ACCOUNTING1 DISPLAY "TEST11 (True): WS-DEPT-GROUP1 ==" WS-DEPT-GROUP1 "== WS-ACCOUNTING1" ELSE DISPLAY "TEST11 (False): WS-DEPT-GROUP1 ==" WS-DEPT-GROUP1 "!= WS-ACCOUNTING1". DISPLAY "EXIT A-1100". A-1200. DISPLAY "ENTER A-1200:". IF WS-IDX > WS-IDX1 OR > IDX THEN DISPLAY "TEST12 (True): WS-IDX(" WS-IDX ") > WS-IDX1(" WS-IDX1 ") OR IDX(" IDX ")" ELSE DISPLAY "TEST12 (False) : WS-IDX(" WS-IDX ") > WS-IDX1(" WS-IDX1 ") OR IDX(" IDX ")" END-IF DISPLAY "EXIT A-1200". A-1300. DISPLAY "ENTER A-1300:". IF (( WS-IDX = 100 OR 99 ) AND ( WS-IDX1 = 1 OR 12 OR 33 )) OR ( WS-IDX2 = 51 OR 152 OR 253 ) THEN DISPLAY "TEST13 (True) : ( ( WS-IDX [100 OR 99]=" WS-IDX " ) AND ( WS-IDX1 [1 OR 12 OR 33]=" WS-IDX1 " ) ) OR ( WS-IDX2 [51 OR 152 OR 253]=" WS-IDX2 " )" ELSE DISPLAY "TEST13 (False) : ( ( WS-IDX [100 OR 99]=" WS-IDX " ) AND ( WS-IDX1 [1 OR 12 OR 33]=" WS-IDX1 " ) ) OR ( WS-IDX2 [51 OR 152 OR 253]=" WS-IDX2 " )" END-IF. DISPLAY "EXIT A-1300".