IDENTIFICATION DIVISION. PROGRAM-ID. TEST05b. * Program to test PERFORM VARYING UNTIL 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). PROCEDURE DIVISION. DISPLAY "BEGIN: PERFORM VARYING UNTIL - TEST BEFORE". PERFORM A-100. DISPLAY "END : PERFORM VARYING UNTIL - TEST BEFORE". DISPLAY "BEGIN: PERFORM VARYING UNTIL - TEST AFTER". PERFORM A-150. DISPLAY "END : PERFORM VARYING UNTIL - TEST AFTER". DISPLAY "BEGIN: PERFORM(In-line) VARYING UNTIL TEST AFTER". PERFORM A-300. DISPLAY "END : PERFORM(In-line) VARYING UNTIL TEST AFTER". DISPLAY "BEGIN: PERFORM(In-line) VARYING UNTIL TEST BEFORE". PERFORM A-400. DISPLAY "END : PERFORM(In-line) VARYING UNTIL TEST BEFORE". STOP RUN. A-100. DISPLAY "ENTER A-100". PERFORM A-200 WITH TEST BEFORE VARYING IDX FROM 1 BY 1 UNTIL IDX > 2. * UNTIL IDX EQUAL 1. DISPLAY "EXIT A-100". A-150. DISPLAY "ENTER A-150". PERFORM A-200 WITH TEST AFTER VARYING IDX FROM 1 BY 1 UNTIL IDX > 2. * UNTIL IDX EQUAL 1. DISPLAY "EXIT A-150". A-200. DISPLAY "ENTER A-200". DISPLAY "A-200 - IDX =" IDX. DISPLAY "EXIT A-200". A-300. DISPLAY "ENTER A-300". PERFORM WITH TEST AFTER VARYING IDX FROM 1 BY 1 UNTIL IDX > 2 * UNTIL IDX EQUAL 1. DISPLAY "A-300 - IDX =" IDX 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 * UNTIL IDX EQUAL 1. DISPLAY "A-400 - IDX =" IDX END-PERFORM. DISPLAY "EXIT A-400".