我不知道为什么退出程序后后续部分仍在运行。
这是我的代码:
IDENTIFICATION DIVISION.
PROGRAM-ID. PGM2.
/
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-AS400.
OBJECT-COMPUTER. IBM-AS400.
/
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-VARS PIC X(10).
/
PROCEDURE DIVISION.
000-MAIN SECTION.
******************
010-START.
*
INITIALIZE WS-VARS.
*
090-EXIT.
EXIT PROGRAM.
/
200-WRITE-LINE SECTION.
************************
210-START.
*
DISPLAY 'STILL RUNNING'.
*
290-EXIT.
EXIT.
/
该程序正在另一个程序中被调用。退出程序后,我希望它返回到调用它的程序,但它仍在继续运行。请帮助我理解为什么。
编辑:我发现如果调用程序是另一个COBOL程序,它将按照我的预期退出该程序。但似乎如果调用程序是CLP,则EXIT PROGRAM不会退出。
这是因为
EXIT PROGRAM
只将程序留给 COBOL 调用者。
您想要做的(几乎在所有情况下)是使用
GOBACK
,因为它总是离开运行单元,无论它是如何调用的。如果是从 COBOL CALL
编辑而来,则与 EXIT PROGRAM
效果相同,否则与 STOP RUN
相同。