161 lines
4.6 KiB
COBOL
161 lines
4.6 KiB
COBOL
IDENTIFICATION DIVISION.
|
|
PROGRAM-ID. TEST05d.
|
|
* Program to test PERFORM VARYING, AFTER with TEST option.
|
|
|
|
ENVIRONMENT DIVISION.
|
|
|
|
CONFIGURATION SECTION.
|
|
* SPECIAL-NAMES.
|
|
* DECIMAL-POINT IS COMMA.
|
|
* INPUT-OUTPUT SECTION.
|
|
|
|
DATA DIVISION.
|
|
FILE SECTION.
|
|
|
|
WORKING-STORAGE SECTION.
|
|
01 IDX PIC 9(05) VALUE 0.
|
|
01 IDX1 PIC 9(05) VALUE 0.
|
|
01 IDX2 PIC 9(05) VALUE 0.
|
|
01 IDX3 PIC 9(05) VALUE 0.
|
|
01 IDX4 PIC 9(05) VALUE 0.
|
|
01 IDX5 PIC 9(05) VALUE 0.
|
|
|
|
PROCEDURE DIVISION.
|
|
|
|
DISPLAY "BEGIN: PERFORM VARYING UNTIL/AFTER - TEST BEFORE".
|
|
PERFORM A-100.
|
|
DISPLAY "END : PERFORM VARYING UNTIL/AFTER - TEST BEFORE".
|
|
|
|
DISPLAY "BEGIN: PERFORM VARYING UNTIL/AFTER - TEST BEFORE - 2".
|
|
PERFORM A-125.
|
|
DISPLAY "END : PERFORM VARYING UNTIL/AFTER - TEST BEFORE - 2".
|
|
|
|
DISPLAY "BEGIN: PERFORM VARYING UNTIL/AFTER - TEST AFTER".
|
|
PERFORM A-150.
|
|
DISPLAY "END : PERFORM VARYING UNTIL/AFTER - TEST AFTER".
|
|
|
|
DISPLAY "BEGIN: PERFORM VARYING UNTIL/AFTER - TEST AFTER - 2".
|
|
PERFORM A-175.
|
|
DISPLAY "END : PERFORM VARYING UNTIL/AFTER - TEST AFTER - 2".
|
|
|
|
DISPLAY "BEGIN: PERFORM(In-line) VARYING UNTIL/AFTER TEST AFTER".
|
|
PERFORM A-300.
|
|
DISPLAY "END : PERFORM(In-line) VARYING UNTIL/AFTER TEST AFTER".
|
|
|
|
DISPLAY "BEGIN: PERFORM(In-line) VARYING UNTIL/AFTER TEST BEFORE".
|
|
PERFORM A-400.
|
|
DISPLAY "END : PERFORM(In-line) VARYING UNTIL/AFTER TEST BEFORE".
|
|
|
|
STOP RUN.
|
|
|
|
A-100.
|
|
DISPLAY "ENTER A-100".
|
|
MOVE 1 TO IDX5.
|
|
PERFORM A-200
|
|
WITH TEST BEFORE
|
|
* VARYING IDX FROM 1 BY IDX5 UNTIL IDX > 2.
|
|
* VARYING IDX FROM 1 BY 1 UNTIL IDX > 2.
|
|
VARYING IDX FROM 1 BY 1 UNTIL IDX > 2
|
|
AFTER IDX1 FROM 1 BY 1 UNTIL IDX1 > 2
|
|
AFTER IDX2 FROM 1 BY 1 UNTIL IDX2 > 2
|
|
AFTER IDX3 FROM 1 BY 1 UNTIL IDX3 > 2
|
|
* AFTER IDX FROM 1 BY 1 UNTIL IDX > 2.
|
|
AFTER IDX4 FROM 1 BY 1 UNTIL IDX4 > 2.
|
|
* AFTER IDX5 FROM 1 BY 1 UNTIL IDX5 > 2.
|
|
* AFTER IDX1 FROM 1 BY 1 UNTIL IDX4 > 2.
|
|
* UNTIL IDX EQUAL 1.
|
|
DISPLAY "EXIT A-100".
|
|
|
|
A-125.
|
|
DISPLAY "ENTER A-125".
|
|
MOVE 1 TO IDX IDX1 IDX2 IDX3 IDX4 IDX5.
|
|
PERFORM A-200
|
|
WITH TEST BEFORE
|
|
* VARYING IDX FROM IDX BY IDX5 UNTIL IDX > 2.
|
|
* VARYING IDX FROM IDX BY 1 UNTIL IDX > 2.
|
|
VARYING IDX FROM IDX BY 1 UNTIL IDX > 2
|
|
AFTER IDX1 FROM IDX1 BY 1 UNTIL IDX1 > 2
|
|
AFTER IDX2 FROM IDX2 BY 1 UNTIL IDX2 > 2
|
|
AFTER IDX3 FROM IDX3 BY 1 UNTIL IDX3 > 2
|
|
* AFTER IDX FROM IDX BY 1 UNTIL IDX > 2.
|
|
AFTER IDX4 FROM IDX4 BY 1 UNTIL IDX4 > 2.
|
|
* AFTER IDX5 FROM IDX5 BY 1 UNTIL IDX5 > 2.
|
|
* AFTER IDX1 FROM IDX1 BY 1 UNTIL IDX4 > 2.
|
|
* UNTIL IDX EQUAL 1.
|
|
DISPLAY "EXIT A-125".
|
|
|
|
A-150.
|
|
DISPLAY "ENTER A-150".
|
|
PERFORM A-200
|
|
WITH TEST AFTER
|
|
VARYING IDX FROM 1 BY 1 UNTIL IDX > 2
|
|
AFTER IDX1 FROM 1 BY 1 UNTIL IDX1 > 2
|
|
AFTER IDX2 FROM 1 BY 1 UNTIL IDX2 > 2
|
|
AFTER IDX3 FROM 1 BY 1 UNTIL IDX3 > 2
|
|
AFTER IDX4 FROM 1 BY 1 UNTIL IDX4 > 2.
|
|
* UNTIL IDX EQUAL 1.
|
|
DISPLAY "EXIT A-150".
|
|
|
|
A-175.
|
|
DISPLAY "ENTER A-175".
|
|
MOVE 1 TO IDX IDX1 IDX2 IDX3 IDX4.
|
|
PERFORM A-200
|
|
WITH TEST AFTER
|
|
VARYING IDX FROM IDX BY 1 UNTIL IDX > 2
|
|
AFTER IDX1 FROM IDX1 BY 1 UNTIL IDX1 > 2
|
|
AFTER IDX2 FROM IDX2 BY 1 UNTIL IDX2 > 2
|
|
AFTER IDX3 FROM IDX3 BY 1 UNTIL IDX3 > 2
|
|
AFTER IDX4 FROM IDX4 BY 1 UNTIL IDX4 > 2.
|
|
* UNTIL IDX EQUAL 1.
|
|
DISPLAY "EXIT A-175".
|
|
|
|
A-200.
|
|
DISPLAY "ENTER A-200".
|
|
DISPLAY "A-200: IDX=" IDX " IDX1=" IDX1
|
|
" IDX2=" IDX2 " IDX3=" IDX3 " IDX4=" IDX4.
|
|
* DISPLAY "A-200 - IDX =" IDX.
|
|
* DISPLAY "A-200 - IDX1 =" IDX1.
|
|
* DISPLAY "A-200 - IDX2 =" IDX2.
|
|
* DISPLAY "A-200 - IDX3 =" IDX3.
|
|
* DISPLAY "A-200 - IDX4 =" IDX4.
|
|
DISPLAY "EXIT A-200".
|
|
|
|
A-300.
|
|
DISPLAY "ENTER A-300".
|
|
PERFORM
|
|
WITH TEST AFTER
|
|
VARYING IDX FROM 1 BY 1
|
|
UNTIL IDX > 2
|
|
AFTER IDX1 FROM 1 BY 1 UNTIL IDX1 > 2
|
|
AFTER IDX2 FROM 1 BY 1 UNTIL IDX2 > 2
|
|
AFTER IDX3 FROM 1 BY 1 UNTIL IDX3 > 2
|
|
AFTER IDX4 FROM 1 BY 1 UNTIL IDX4 > 2
|
|
* AFTER IDX FROM 1 BY 1 UNTIL IDX > 2
|
|
* UNTIL IDX EQUAL 1
|
|
|
|
DISPLAY "A-300: IDX=" IDX " IDX1=" IDX1
|
|
" IDX2=" IDX2 " IDX3=" IDX3 " IDX4=" IDX4
|
|
* DISPLAY "A-300 - IDX =" IDX
|
|
* DISPLAY "A-300 - IDX1 =" IDX1
|
|
END-PERFORM.
|
|
DISPLAY "EXIT A-300".
|
|
|
|
A-400.
|
|
DISPLAY "ENTER A-400".
|
|
PERFORM
|
|
* WITH TEST BEFORE
|
|
VARYING IDX FROM 1 BY 1
|
|
UNTIL IDX > 2
|
|
AFTER IDX1 FROM 1 BY 1 UNTIL IDX1 > 2
|
|
AFTER IDX2 FROM 1 BY 1 UNTIL IDX2 > 2
|
|
AFTER IDX3 FROM 1 BY 1 UNTIL IDX3 > 2
|
|
AFTER IDX4 FROM 1 BY 1 UNTIL IDX4 > 2
|
|
* UNTIL IDX EQUAL 1
|
|
|
|
DISPLAY "A-400: IDX=" IDX " IDX1=" IDX1
|
|
" IDX2=" IDX2 " IDX3=" IDX3 " IDX4=" IDX4
|
|
* DISPLAY "A-400 - IDX =" IDX
|
|
* DISPLAY "A-400 - IDX1 =" IDX1
|
|
END-PERFORM.
|
|
DISPLAY "EXIT A-400".
|