DEV Community

Cover image for COBOL Tutorial Series: Loop statements - Session 4
Duc Nguyen Thanh
Duc Nguyen Thanh

Posted on

1 1 1

COBOL Tutorial Series: Loop statements - Session 4

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

Heroku

Deploy with ease. Manage efficiently. Scale faster.

Leave the infrastructure headaches to us, while you focus on pushing boundaries, realizing your vision, and making a lasting impression on your users.

Get Started

Top comments (0)

ACI image

ACI.dev: The Only MCP Server Your AI Agents Need

ACI.dev’s open-source tool-use platform and Unified MCP Server turns 600+ functions into two simple MCP tools on one server—search and execute. Comes with multi-tenant auth and natural-language permission scopes. 100% open-source under Apache 2.0.

Star our GitHub!