Multiple Return Values in COBOL
COBOL, being a procedural language primarily used for business applications, doesn’t have a direct equivalent for multiple return values as seen in more modern languages. However, we can simulate this behavior using multiple parameters passed by reference. Here’s how we might approach this:
IDENTIFICATION DIVISION.
PROGRAM-ID. MULTIPLE-RETURN-VALUES.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-A PIC 9(5).
01 WS-B PIC 9(5).
01 WS-C PIC 9(5).
PROCEDURE DIVISION.
MAIN-PROCEDURE.
PERFORM VALS-PROCEDURE.
DISPLAY WS-A.
DISPLAY WS-B.
PERFORM VALS-PROCEDURE.
DISPLAY WS-B.
STOP RUN.
VALS-PROCEDURE.
MOVE 3 TO WS-A.
MOVE 7 TO WS-B.In this COBOL program:
We define three working-storage variables:
WS-A,WS-B, andWS-C.The
VALS-PROCEDUREsimulates returning multiple values by settingWS-Ato 3 andWS-Bto 7.In the
MAIN-PROCEDURE, we callVALS-PROCEDUREand then display the values ofWS-AandWS-B.To simulate using only a subset of the “returned” values, we call
VALS-PROCEDUREagain but only displayWS-B.
COBOL doesn’t have a built-in concept of ignoring values (like the blank identifier _ in some languages). Instead, we simply don’t use the variable we’re not interested in.
To run this COBOL program:
$ cobc -x multiple-return-values.cob
$ ./multiple-return-values
3
7
7This example demonstrates how to simulate multiple return values in COBOL. While it’s not as elegant as in more modern languages, it achieves a similar result by using variables in the working-storage section.
In COBOL, passing parameters by reference is a common practice for simulating multiple return values from a procedure. This approach is often used in business applications where COBOL is prevalent.