我試圖調用cobol中的內部條目。 該調用是確定的,但是在輸入之後還有一些段落也是錯誤執行的問題。停止調用條目的效果
這裏是我的程序:
IDENTIFICATION DIVISION.
PROGRAM-ID. ENTR1POW.
DATA DIVISION.
WORKING-STORAGE SECTION.
LOCAL-STORAGE SECTION.
PROCEDURE DIVISION.
display "BEFORE CALL NOM_PROC1======================="
PERFORM NOM_PROC1 THRU E--NOM_PROC1
display "AFTER CALL NOM_PROC1======================="
display "CALL NOM_PROC2============================="
PERFORM NOM_PROC2 THRU E--NOM_PROC2
display "CALL ENTRY1============================"
CALL 'ENTRY1'
GOBACK.
NOM_PROC1.
display "PGM ENTR1POW: BEGIN NOM_PROC1"
display "PGM ENTR1POW: END NOM_PROC1"
CONTINUE.
E--NOM_PROC1.
EXIT.
NOM_PROC2 SECTION.
display "PGM ENTR1POW: BEGIN NOM_PROC2"
ENTRY 'ENTRY1'
display "===========BEGIN ENTRY ENTRY1"
display "===========END ENTRY ENTRY1"
ENTRY 'ENTRY2'
display "===========BEGIN ENTRY ENTRY2"
display "===========END ENTRY ENTRY2"
ENTRY 'ENTRY3'
display "===========BEGIN ENTRY ENTRY3"
display "===========END ENTRY ENTRY3"
display "PGM ENTR1POW: END NOM_PROC2"
CONTINUE.
E--NOM_PROC2.
EXIT.
NOM_PROC3 SECTION.
display "PGM ENTR1POW: BEGIN NOM_PROC3"
display "PGM ENTR1POW: END NOM_PROC3"
CONTINUE.
E--NOM_PROC3 SECTION.
EXIT.
NOM_PROC4.
display "PGM ENTR1POW: BEGIN NOM_PROC4"
display "PGM ENTR1POW: END NOM_PROC4"
CONTINUE.
E--NOM_PROC4.
EXIT.
,我得到的輸出是:
BEFORE CALL NOM_PROC1=======================
PGM ENTR1POW: BEGIN NOM_PROC1
PGM ENTR1POW: END NOM_PROC1
AFTER CALL NOM_PROC1=======================
CALL NOM_PROC2=============================
PGM ENTR1POW: BEGIN NOM_PROC2
===========BEGIN ENTRY ENTRY1
===========END ENTRY ENTRY1
===========BEGIN ENTRY ENTRY2
===========END ENTRY ENTRY2
===========BEGIN ENTRY ENTRY3
===========END ENTRY ENTRY3
PGM ENTR1POW: END NOM_PROC2
CALL ENTRY1============================
===========BEGIN ENTRY ENTRY1
===========END ENTRY ENTRY1
===========BEGIN ENTRY ENTRY2
===========END ENTRY ENTRY2
===========BEGIN ENTRY ENTRY3
===========END ENTRY ENTRY3
PGM ENTR1POW: END NOM_PROC2
PGM ENTR1POW: BEGIN NOM_PROC3
PGM ENTR1POW: END NOM_PROC3
PGM ENTR1POW: BEGIN NOM_PROC4
PGM ENTR1POW: END NOM_PROC4
我認爲,在調用段NOM_PROC3和NOM_PROC4不應該發生。
我知道,如果我將段落NOM_PROC2移動到程序結束,那麼我的問題將得到解決,但我想這樣做?有沒有其他方法可以解決我的問題。 謝謝你在advnace的回覆。 –
你使用什麼編譯器? ENTRY並不打算進入調用它的程序中,它應該在另一個程序中。你想做什麼?正如@cschneid所說,「包含」或「嵌套」程序可能更符合你的要求。如果你認爲PERFORM是CALL,你也會迷惑自己。它不是,所以你的消息是不正確的。 –