精通COBOL--11.2.3 子程序的终止方式

来源:互联网 发布:ce源码制作教程 编辑:程序博客网 时间:2024/05/18 01:46

  当某一子程序被调用运行时,该程序通常有以下3种发展方向。

q      调用另一个子程序。

q      终止本子程序,并返回上一层主调用程序。

q      终止本子程序,同时退出整个系统。

关于第一条发展方向,实际上在上一小节中已有所提到。此处重点看后两种发展方向。其中对于第2种发展方向,主要是通过GOBACKEXIT PROGRAM语句实现的。对于第3种发展方向,主要是通过STOP RUN语句实现的。下面分别就以上3种语句进行讲解。

1GOBACK语句

GOBACK语句作为程序的结束标志,既可以在子程序中使用,也可以在主程序中使用。二者的共同之处都是终止程序,但也有各自的区别。

q      对于子程序而言,使用GOBACK语句有两方面作用。其中一方面作用是表示该子程序在此处终止。另一方面作用是表示该子程序终止后,将把控制权返回给主程序或是上一层子程序。

q      对于主程序而言,GOBACK语句通常表示返回到操作系统。此时,包含该程序的作业将结束运行。实际上,在主程序中使用GOBACK语句和使用STOP RUN语句是等效的。

2EXIT PROGRAM语句

当在子程序中使用EXIT PROGRAM语句时,表示直接返回到主程序或上一层子程序中。并且,保持此时的运行单元不被终止。当子程序中所有语句执行完毕后,将会产生并执行一条隐含的EXIT PROGRAM语句。在主程序中使用EXIT PROGRAM语句时,不会产生任何动作。因此,通常不在主程序中使用EXIT PROGRAM语句。

3STOP RUN语句

在子程序中使用STOP RUN语句时,通常将直接返回到操作系统中。并且,此时相应的作业也将结束运行。当在主程序中使用STOP RUN语句时,通常也是直接返回到操作系统。并且,STOP RUN语句将终止整个运行单元。同时,该语句还将把所有动态调用的子程序,以及相应的编译连接程序从运行单元中移除掉。但需要注意的是,该语句并不删除主程序。

原创粉丝点击