首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解使用Call语句的思路

了解使用Call语句的思路
EN

Stack Overflow用户
提问于 2012-05-05 23:04:33
回答 1查看 516关注 0票数 1

当我调用另一个程序时,我需要问一下我的菜单程序有什么问题

通过点击1或2,当程序呼叫我不能返回我的菜单程序时,

你能帮我吗?当我按Esc键的时候,我怎样才能回到我的菜单?

我的Call语句是错误的。

这是我的菜单程序的代码。

代码语言:javascript
复制
LINKAGE SECTION.
   01 MY-PROG1 PIC X.
   01 MY-PROG2 PIC X.

......
......
......

MAIN.

       DISPLAY MENU-HEADER ERROR-MESSAGE.
       PERFORM ENTRY-MENU UNTIL CHOICE = 3.     
       STOP RUN.

   ENTRY-MENU.
       ACCEPT MENU-SELECT.
       PERFORM INPUT-CHOICE UNTIL CHOICE = 3.
       STOP RUN.

   INPUT-CHOICE.
       IF CHOICE = 1
         CALL  'MY-PROGRAM1' USING MY-PROG1 
       ELSE IF CHOICE =2
         CALL 'MY-PROGRAM2' USING MY-PROG2
       ELSE 
          MOVE "INVALID INPUT....." TO ERRMSG
          DISPLAY ERROR-MESSAGE.

这是MY-PROGRAM1.COB这是我按Esc键时回调菜单程序的方式

代码语言:javascript
复制
LINKAGE SECTION.
   01   MY-PROG1 PIC X.
   01   MY-MENU  PIC X.

......
......
......


MAIN.

 .......
 .......
 STOP RUN.

ENTER-BIRTHDATE.

  ACCEPT...
  .......

  IF ESC-KEY
     DISPLAY CLEAR-SCREEN
     CALL 'MENU'

  ELSE IF F10
    .....
    .....       
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-05 23:16:27

您应该用GOBACK替换被调用的programm中的STOP RUN语句。

这是使用STOP RUNGOBACK的一般规则

GOBACK语句标记被调用程序的逻辑结束。

一般规则如果在调用运行时元素控制下的程序中执行GOBACK语句,则目标程序就像执行与GOBACK语句具有相同子句的EXIT程序语句一样运行。请参阅主题EXIT语句。如果在不受调用的运行时元素控制的程序中执行不带ADDRESS OF子句的GOBACK语句,则目标程序的操作就像执行具有与GOBACK语句相同的子句的STOP RUN语句一样。如果在不受调用运行时元素控制的程序中执行带有ADDRESS OF子句的GOBACK语句,则目标程序的操作就像执行STOP RUN语句一样,只是在系统区域中设置了任意返回值。与等效的EXIT程序和STOP RUN语句相比,GOBACK语句可能会产生更紧凑的代码。在执行指定了全局短语的声明性过程时,不能执行GOBACK语句,除非在执行该声明性过程时调用的程序中。如果在函数中执行GOBACK语句,则该函数的操作就像执行EXIT function语句一样。如果在方法中执行GOBACK语句,则该方法的操作就像执行EXIT method语句一样。如果在迭代器中执行GOBACK语句,则迭代器的操作方式就像执行EXIT iterator语句一样。

停止奔跑。这取决于您的系统。在大多数编译器上,STOP RUN都会终止程序,如果它被另一个cobol程序调用,那么整个进程就会终止。

在这个link的末尾,您可以找到一个很好的模式来表示所有这些关系。

编辑:(来自旧的Microsoft Cobol文档)

EXIT program语句: EXIT PROGRAM语句出现在被调用的子程序中,导致在调用程序中的CALL之后将控制返回到下一个可执行语句。此语句本身必须是一个段落。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10463069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档