COBOL GOBACK & STOP RUN & EXIT PROGRAM STATEMENT

There are 3 statements can be used to return from a program.


1. STOP RUN

2. GOBACK

3. EXIT PROGRAM



STOP RUN

Stop run statement will stop the current program and give control back to O.S immediately, whenever it's current in main program or a sub program.



EXIT PROGRAM

Exit program statement can only be used in sub program to specifies the end of a called program and returns control to the calling program.


It is ignored on a main program.


GOBACK

When used in sub program, it's same as EXIT PROGRAM statement, giving back to  caller program.

When used in main program, it's same as STOP RUN statement, giving back to O.S




For Example:

(RED statements will not be executed.)


STOP RUN in main program:

       IDENTIFICATION DIVISION.       
       PROGRAM-ID.    MAINPROG.       
       ENVIRONMENT DIVISION.          
       DATA DIVISION.                 
       PROCEDURE DIVISION.            
           DISPLAY "MAIN ENTRY".
           STOP RUN.               *> PROGRAM STOP HERE
           DISPLAY "MAIN END".
           STOP RUN.



GOBACK in main program:

       IDENTIFICATION DIVISION.       
       PROGRAM-ID.    MAINPROG.       
       ENVIRONMENT DIVISION.          
       DATA DIVISION.                 
       PROCEDURE DIVISION.            
           DISPLAY "MAIN ENTRY".
           GOBACK.                 *> PROGRAM STOP HERE
           DISPLAY "MAIN END".
           STOP RUN.



EXIT PROGRAM in main program:

       IDENTIFICATION DIVISION.       
       PROGRAM-ID.    MAINPROG.       
       ENVIRONMENT DIVISION.          
       DATA DIVISION.                 
       PROCEDURE DIVISION.            
           DISPLAY "MAIN ENTRY".
           EXIT PROGRAM.           *> STATEMENT IS IGNORED
           DISPLAY "MAIN END".
           STOP RUN.

(EXIT PROGRAM instruction is ignored.)



STOP RUN in sub program:

       IDENTIFICATION DIVISION.       
       PROGRAM-ID.    MAINPROG.       
       ENVIRONMENT DIVISION.          
       DATA DIVISION.                 
       PROCEDURE DIVISION.            
           DISPLAY "MAIN ENTRY".
           CALL "SUBPROG".
           DISPLAY "MAIN END".
           STOP RUN.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. SUBPROG.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       PROCEDURE DIVISION.
           DISPLAY "SUBPROG ENTRY".
           STOP RUN.                  *> PROGRAM STOP HERE
           DISPLAY "SUBPROG EXIT".




GOBACK in sub program:

       IDENTIFICATION DIVISION.       
       PROGRAM-ID.    MAINPROG.       
       ENVIRONMENT DIVISION.          
       DATA DIVISION.                 
       PROCEDURE DIVISION.            
           DISPLAY "MAIN ENTRY".
           CALL "SUBPROG".
           DISPLAY "MAIN END".
           STOP RUN.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. SUBPROG.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       PROCEDURE DIVISION.
           DISPLAY "SUBPROG ENTRY".
           GO BACK.                     *> PROGRAM BACK TO CALLER
           DISPLAY "SUBPROG EXIT".






EXIT PROGRAM in sub program:

       IDENTIFICATION DIVISION.       
       PROGRAM-ID.    MAINPROG.       
       ENVIRONMENT DIVISION.          
       DATA DIVISION.                 
       PROCEDURE DIVISION.            
           DISPLAY "MAIN ENTRY".
           CALL "SUBPROG".
           DISPLAY "MAIN END".
           STOP RUN.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. SUBPROG.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       PROCEDURE DIVISION.
           DISPLAY "SUBPROG ENTRY".
           EXIT PROGRAM.                *> PROGRAM BACK TO CALLER
           DISPLAY "SUBPROG EXIT".

(EXIT PROGRAM instruction will return back to caller, just like GOBACK instruction)



  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值