忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 徽章 文库 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 5152 | 回复: 8

当程序goto到return后面之后…… [复制链接]

论坛徽章:
0
发表于 2011-09-23 16:31 |显示全部楼层
本帖最后由 爱笑的猫猫 于 2011-09-23 16:33 编辑

今天写了个rpg程序,在return后边写了几条语句,使用goto跳转到return语句之后的语句,发现程序在执行完return后面的语句后又跳到了程序的开头!
   然后就又写了个简单的程序测试:

  1. c     'aaaaa'       dsply     aaa         
  2. c                   exsr      bbb         
  3. c                   goto      ccc         
  4. c                   eval      *inlr = *on
  5. c                   return               
  6.                                           
  7. c     ccc           tag                  
  8. c     'ccccc'       dsply                 
  9. c     'ddddd'       dsply                 
  10.                                           
  11. c     eee           begsr                 
  12. c     'eeeee'       dsply                 
  13. c                   endsr                 
  14. c     bbb           begsr                 
  15. c     'bbbbb'       dsply                 
  16. c                   endsr                 
复制代码
这个程序是个死循环,当程序执行到dsply语句的时候遇到begsr跳回到程序开头。
执行结果:
DSPLY  aaaaa
DSPLY  bbbbb
DSPLY  ccccc
DSPLY  ddddd
DSPLY  aaaaa
DSPLY  bbbbb
DSPLY  ccccc
DSPLY  ddddd
DSPLY  aaaaa
DSPLY  bbbbb
……
这是IBM故意设定的么?

论坛徽章:
0
发表于 2011-09-23 16:48 |显示全部楼层
最后一条语句不是return的话,就再从第一条语句开始执行。

你的例子完美的证明了这一点

论坛徽章:
0
发表于 2011-09-23 17:52 |显示全部楼层
在RPGG还没用过GOTO

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-05 06:20:00
发表于 2011-09-24 11:26 |显示全部楼层
你是像说为什么已经 SETON *LR   RETURN了之后还在执行么?
按理是应该结束程序的意思么?

论坛徽章:
0
发表于 2011-09-24 14:17 |显示全部楼层
回复 4# junlee1986


    NO。他这个例子没有执行seton *inlr  和return ,跳过去了。
所以程序不会结束。而是又从头开始执行

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-11-05 06:20:00
发表于 2011-09-25 10:16 |显示全部楼层
回复  junlee1986


    NO。他这个例子没有执行seton *inlr  和return ,跳过去了。
所以程序不会结束 ...
niuhua77 发表于 2011-09-24 14:17



    没有执行那个,当然一直执行了,那是400的程序周期。

论坛徽章:
0
发表于 2011-09-26 11:19 |显示全部楼层
你dubeg一下你的程序不就知道了嘛

论坛徽章:
0
发表于 2017-09-20 13:17 |显示全部楼层
回首过往,mark
IMG_3776.JPG

论坛徽章:
5
2015亚冠之阿尔艾因
日期:2015-08-10 02:23:34操作系统版块每日发帖之星
日期:2015-08-13 06:20:002015七夕节徽章
日期:2015-08-21 11:06:1715-16赛季CBA联赛之山西
日期:2016-04-13 02:36:59操作系统版块每日发帖之星
日期:2016-04-14 06:20:00
发表于 2017-09-20 16:54 来自手机 |显示全部楼层
爱笑的猫猫 发表于 2017-09-20 13:17
回首过往,mark

哈哈,已成大神?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

DTCC2018购票6.8折优惠进行时

中国数据库技术大会是国内数据库及大数据领域规模最大、最受欢迎的技术交流盛会。 2018年5月10-12日,第九届中国数据库技术大会将如约而至。本届大会以“数领先机•智赢未来”为主题,设定2大主会场及20个技术专场,邀请来自国内外互联网、金融、教育等行业百余位技术专家,共同探讨Oracle、MySQL、NoSQL、大数据等领域的前瞻性热点话题与技术。
----------------------------------------
优惠时间:2018年2月13日前

报名链接>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP