280 lines
5.6 KiB
COBOL
280 lines
5.6 KiB
COBOL
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".
|