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