PERFORM参数传递
参数传递:
将主程序变量传递给子例程形式参数
传递类型
值传:子例程中参数变量的值的改变,不影响外部程序实际变量的值.
DATA:A TYPE I VALUE ,
B TYPE I VALUE ,
C TYPE I.
WRITE:'A=',A,'B=',B,'C=',C.
PERFORM ADD USING A B CHANGING C.
WRITE:/ SY-ULINE.
WRITE:/ 'A=',A,'B=',B,'C=',C."A B的值不会变
FORM ADD USING VALUE(D) VALUE(E) CHANGING F.
D = D + .
E = E - .
F = D + E.
WRITE:/ SY-ULINE.
WRITE:/ 'A=',A,'B=',B,'C=',C,/ 'D=',D,'E=',E,'F=',F. "A B的值不会变
ENDFORM.

引用传:若子例程中的参数变量的值发生了改变,那么,外部程序的实际变量的值也发生改变.
DATA:A TYPE I VALUE ,
B TYPE I VALUE ,
C TYPE I.
WRITE:'A=',A,'B=',B,'C=',C.
PERFORM ADD USING A B CHANGING C.
WRITE:/ SY-ULINE.
WRITE:/ 'A=',A,'B=',B,'C=',C."A B的值不会变
FORM ADD USING D E CHANGING F.
D = D + ."提示不应该更改 USING 参考参数。而应将参数定义为USING-VALUE(...) 或 CHANGING 参数as a USING-VALUE(...) or CHANGING parameter.
E = E - ."提示不应该更改 USING 参考参数。而应将参数定义为USING-VALUE(...) 或 CHANGING 参数as a USING-VALUE(...) or CHANGING parameter.
F = D + E.
WRITE:/ SY-ULINE.
WRITE:/ 'A=',A,'B=',B,'C=',C,/ 'D=',D,'E=',E,'F=',F. "A B的值会变
ENDFORM.

值传并返回结果:传递参数的方式同值传递相同,但在子例程执行过程中,变量值不改变,而结束执行后,把变量的最终值返回.
DATA:A TYPE I VALUE ,
B TYPE I VALUE ,
C TYPE I.
WRITE:'A=',A,'B=',B,'C=',C.
PERFORM ADD USING A B CHANGING C.
WRITE:/ SY-ULINE.
WRITE:/ 'A=',A,'B=',B,'C=',C."A B的值不会变
FORM ADD USING D E CHANGING VALUE(F).
D = D + ."提示不应该更改 USING 参考参数。而应将参数定义为USING-VALUE(...) 或 CHANGING 参数as a USING-VALUE(...) or CHANGING parameter.
E = E - ."提示不应该更改 USING 参考参数。而应将参数定义为USING-VALUE(...) 或 CHANGING 参数as a USING-VALUE(...) or CHANGING parameter.
F = D + E.
WRITE:/ SY-ULINE.
WRITE:/ 'A=',A,'B=',B,'C=',C,/ 'D=',D,'E=',E,'F=',F. "A B的值会变,C的值不会变
ENDFORM.

PERFORM参数传递的更多相关文章
- 【GoLang】golang 闭包 closure 参数传递的蹊跷!
结论: 闭包函数可以直接引用外层代码定义的变量, 但是,注意,闭包函数里面引用的是变量的地址, 当goroutine被调度时,改地址的值才会被传递给goroutine 函数. 介绍 go的闭包是一个很 ...
- js学习之函数的参数传递
我们都知道在 ECMAScript 中,数据类型分为原始类型(又称值类型/基本类型)和引用类型(又称对象类型):这里我将按照这两种类型分别对函数进行传参,看一下到底发生了什么. 参数的理解 首先,我们 ...
- kettle中含有参数传递的定时任务
(1)新建一个作业(新建->作业),并在控制面板右键: (2)设置一个命令参数: (3)把作业的参数传递给转换: (4)在转换中右键设置转换属性: (5)接收作业中设置的传递参数: (6)参数的 ...
- Java基础知识笔记(七:接口、变量作用域和参数传递)
一.接口 Java语言不允许一个子类拥有多个直接父类,即任何子类只能有一个直接父类.但允许一个类实现多个接口,即在定义类的接口名称列表中可以包含1个或多个接口名称,从而实现多重继承的特性.接口的定义格 ...
- shell 脚本之获取命令输出字符串以及函数参数传递
在ubuntu 14.04之后,所有的U盘挂载也分用户之分,最近很多操作也和U盘有关,所以就研究了一上午shell脚本函数以及字符串操作的方法. 字符串操作: 获取他的命令输出比较简单,打个简单的比方 ...
- JQuery Mobile 页面参数传递
在单页模版中使用基于HTTP的方式通过POST和GET请求传递参数,而在多页模版中不需要与服务器进行通信,通常在多页模版中有以下三种方法来实现页面间的参数传递. 1.GET方式:在前一个页面生成参数并 ...
- Java 中的值传递和参数传递
Java中没有指针,所以也没有引用传递了,仅仅有值传递不过可以通过对象的方式来实现引用传递 类似java没有多继承 但可以用多次implements 接口实现多继承的功能 值传递:方法调用时,实际参数 ...
- 【Python学习】函数参数传递方法四种(位置,关键字,默认值,包裹位置,包裹关键字传递)
1. 位置传递: #--coding:utf-8-- def send(name,address): return 'package is sent to %s, located in %s' %(n ...
- JAVA反射参数传递
引用:http://fish2700.blog.163.com/blog/static/130713192009103035723281/ 使用Method反射调用函数时,我们通常会遇到以下几种情况: ...
随机推荐
- Razor 进度的变速
视频录制了 .但发现 进度太慢了,对于当下市场 和我们的学习进度基本不会成正比关系了.所以,改一下 我们教程的实现方式. 我和大家 一起 看一下关联的技术的点, 提出我们要做的 内容 动手实践, 可能 ...
- 20个Python代码段,你需要立刻学会,好用到哭!
Python是一种非BS编程语言.设计简单和易读性是它广受欢迎的两大原因.正如Python的宗旨:美丽胜于丑陋,显式胜于隐式. 记住一些帮助提高编码设计的常用小诀窍是有用的.在必要时刻,这些小诀窍能够 ...
- PHP+Mysql查询上一篇和下一篇文章实例
简单的PHP+Mysql查询上一篇和下一篇文章实例,并输出上一篇和下一篇文章的标题和链接,适合新手学习 获取当前浏览文章id: $id = isset($_GET['id']) > 0 ? in ...
- C#中对文件File常用操作方法的工具类
场景 C#中File类的常用读取与写入文件方法的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99693983 注: 博客 ...
- CDN(Content Delivery Network)原理
CDN即内容分发网络,一般包括分发服务系统,负载均衡系统和管理系统. 分发服务系统,其基本的工作单元就是各个cache服务器.负责直接响应用户请求,将内容快速分发到用户:同时还负责内容更新,保证和源站 ...
- Xcode模拟器无法启动解决办法
今天遇到模拟器无法启动问题,点击模拟器或者Xcode build模拟器就一直跳,跳一会就不跳了,然后查看模拟器状态,显示为无响应.或者黑屏,等半天不动. 如果你有类似情况可以尝试在终端执行以下命令: ...
- XCode证书问题
1. 确认下证书是不是开发证书,如果是发布证书就会出现这样的提示. 2. 证书失效了,去开发者中心重新生成一个. 3. 包标识符不与描述文件包含的包标识符不一致,按照它的提示换一下就好了,最好不要点 ...
- Python目录和文件处理总结
1.判断目录是否存在.判断文件是否存在.创建目录.重命名目录或文件 import os #获取当前目录路径: E:\Work\Projects\python print(os.getcwd()) #判 ...
- Excel 扩展编程相关
============================产品分析============================Excel Automation Tools (Best of List)htt ...
- 渗透测试学习 二十一、 JSP相关漏洞
大纲 ST2漏洞 (Struts2) 反序列漏洞 网站容器,中间键 其他漏洞 Struts2漏洞 简介: Struts2是一个基于MVC设计模式的Web应用框架,它本质上相 ...