COBOL Tutorial Series: Loop statements - Session 4

Duc Nguyen Thanh - Oct 19 - - Dev Community

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. 

Enter fullscreen mode Exit fullscreen mode
  • 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 value 0
  • PERFORM VARYING: Starts a loop. This loop will continue until WS-COUNTER is greater than WS-NUMBER-OF-PRODUCTS.
  • FROM 1 BY 1: Sets the starting value of WS-COUNTER to 1 and increments it by 1 after each iteration.

and here is the result

result

Repository here

. . . . . . . . . . . . . . . . . . . .
Terabox Video Player