Hello, I'm Duke
In the previous 3 sessions, I have guided you on how to develop, compile, and create a simple calculation program with condition statements using COBOL.
Today, I will be giving a tutorial on loops in COBOL.
1. In-line Perform
The statements inside PERFORM
will be executed until END-PERFORM
is reached.
2. Perform Varying
In perform varying
, a paragraph will be executed till the condition in Until
phrase becomes true.
IDENTIFICATION DIVISION. PROGRAM-ID. ProductList. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-PRODUCT-NAME PIC X(30). 01 WS-PRODUCT-PRICE PIC 9(5)V99. 01 WS-TOTAL-PRICE PIC 9(7)V99 VALUE 0. 01 WS-COUNTER PIC 9(2) VALUE 1. 01 WS-NUMBER-OF-PRODUCTS PIC 9(2) VALUE 0. PROCEDURE DIVISION. MAIN-PROCESS. DISPLAY "How many products?". ACCEPT WS-NUMBER-OF-PRODUCTS. PERFORM VARYING WS-COUNTER FROM 1 BY 1 UNTIL WS-COUNTER > WS-NUMBER-OF-PRODUCTS DISPLAY "Name of product no. " WS-COUNTER ": " ACCEPT WS-PRODUCT-NAME DISPLAY "Price of " WS-PRODUCT-NAME ": " ACCEPT WS-PRODUCT-PRICE COMPUTE WS-TOTAL-PRICE = WS-TOTAL-PRICE + WS-PRODUCT-PRICE END-PERFORM. DISPLAY "Total price: " WS-TOTAL-PRICE. STOP RUN.
-
WS-PRODUCT-NAME
: This variable is used to store the product name, with a maximum of 30 characters (PIC X(30)
). -
WS-PRODUCT-PRICE
: This variable is used to store the product price in a 5-digit and 2-decimal number format (PIC 9(5)V99
). -
WS-TOTAL-PRICE
: This variable stores the total price of all products, initialized with the value 0. It has a 7-digit and 2-decimal format (PIC 9(7)V99
). -
WS-COUNTER
: This variable is a counter, starting from 1 and has a 2-digit format (PIC 9(2)
). -
WS-NUMBER-OF-PRODUCTS
: This variable stores the number of products entered by the user, initialized with the value0
-
PERFORM VARYING
: Starts a loop. This loop will continue untilWS-COUNTER
is greater thanWS-NUMBER-OF-PRODUCTS
. -
FROM 1 BY 1
: Sets the starting value ofWS-COUNTER
to1
and increments it by1
after each iteration.
and here is the result
Repository here
Top comments (0)