易语言教程 第8章 易语言的子程序.docx

上传人:牧羊曲112 文档编号:3574497 上传时间:2023-03-13 格式:DOCX 页数:12 大小:41.98KB
返回 下载 相关 举报
易语言教程 第8章 易语言的子程序.docx_第1页
第1页 / 共12页
易语言教程 第8章 易语言的子程序.docx_第2页
第2页 / 共12页
易语言教程 第8章 易语言的子程序.docx_第3页
第3页 / 共12页
易语言教程 第8章 易语言的子程序.docx_第4页
第4页 / 共12页
易语言教程 第8章 易语言的子程序.docx_第5页
第5页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《易语言教程 第8章 易语言的子程序.docx》由会员分享,可在线阅读,更多相关《易语言教程 第8章 易语言的子程序.docx(12页珍藏版)》请在三一办公上搜索。

1、易语言教程 第8章 易语言的子程序第8章 易语言的子程序 本章主要介绍易语言子程序的创建和调用、子程序参数的使用以及参数属性的设置方法。 本章学习内容: 8.1 新建子程序 8.6 参数的参考属性 8.2 调用子程序 8.7 子程序的返回值 8.3 两类子程序的区别 8.8 课后练习 8.4 子程序参数 8.5 参数的可空属性 将程序分割成较小的功能单元就可以简化程序设计任务,这些功能单元被称为子程序,可以把共享的或常调用的功能置于子程序中,达到简化程序设计、方便代码重用和提高程序维护效率的目的,这是结构化程序设计的主要特征之一。 子程序可把程序划分成相对独立的功能单元,每个单元都比无子程序的

2、整个程序容易调试和理解; 一个应用程序中的子程序,往往不必修改或只需稍作改动,便可以成为另一个程序的子程序。 163 8.1 新建子程序 下面我们就开始新建第一个自定义子程序。方法十分简单,一步一步跟我来吧! 首先在启动窗口添加一个按钮,默认名称为“按钮1”。双击按钮1进入代码编辑界面。 新建子程序的默认名称为“子程序1”,依此类推。 将光标移到代码编辑行,右键单击,在弹出菜单中选择“新子程序”命令,就可以新建子程序。 另一种更快捷的方法是,在代码编辑区获得焦点时,同时按下“Ctrl 键”和“N键”,也可以新建子程序。 第三种方法,到主菜单上。选择“插入” “新子程序”命令也可新建子程序。 1

3、64 注意: 在同一个程序集中,子程序名不能重复。特别在修改的时候,易语言会提示并修改已经被使用过的名称。 “子程序1” 已经存在,当另一个子程序被修改成“子程序1”时,易语言弹出出错提示。 被易语言修改的子程序名。 新建的子程序没有参数,这需要操作者自行添加所需数目的参数并设置参数的类型以及参数的可空、参考和数组等属性。 特别应该注意的是,每个新建的子程序都不会被易语言或其它子程序自动调用,下面将讲解如何调用子程序。 8.2 调用子程序 165 前一节中讲了如何建立子程序,下面演示如何调用一个子程序。 在“子程序1”中添加代码:信息框 在“_按钮1_被单击”事件子程序中添加程序代码 “ 子程

4、序1 ”或直接复制名称,将其粘贴过来。 在“按钮2”事件子程序中添加代码 子程序1 。 同一个子程序可以被多次调用。 按F5键运行程序,分别单击“按钮1”和“按钮2”,都能弹出“子程序1”里的信息框。 一个子程序可以在事件子程序和其它新建的子程序中多次被调用,也可以被其它程序集的事件子程序和新建的子程序调用。要注意的是,在本程序中定义的子程序只能在本程序中使用。 每次调用子程序时,子程序中的所有命令都将从第一条开始顺序执行,当执行到子程序尾部或者遇到“返回”命令时即返回到调用此子程序命令的下一条命令处。 166 把“子程序1”修改为“信息框子程序”。 这里的“子程序1”同时被修改为信息框子程序

5、。 上节中提到了子程序名称的问题,这里我们还要提一个小建议。当要修改一个子程序名称时,应该直接到这个子程序的定义位置进行修改。这样可以使调用它的程序代码同步修改该子程序的名称,如上图所示。这可以避免因调用无效子程序导致的编译错误。 大家可以看到,子程序必须由其它子程序调用才能被执行。子程序的调用方法与命令的调用方法完全一致。 8.3 两类子程序的区别 167 虽然新建的子程序和事件子程序的调用方法一样,但它们之间也有一些不同之处。 这是“_按钮1_被单击”子程序的原型,没有参数。 光标选中子程序名称,按Enter键添加一个参数。 输入参数名称并设置类型。最后按F5键运行程序,单击“按钮1”,信

6、息框不见了。 信息框看不到的原因是“_按钮1_被单击”子程序参数结构被改变,易语言就会把它当作新建的子程序,和“按钮1”没有任何联系了,而新建子程序可以任意的添加参数。请大家自行总结一下新建的子程序和事件子程序的区别。 8.4 子程序参数 参数和变量的使用方法一样,可以使用赋值语句在参数内临时存储数据。参数有参数名、数据类型以及“可空”和“参考”等属性。参数只能在定义它的子程序中使用,相当于局部变量。 168 把8.3中“_ 按钮1_被单击”事件子程序的“参数1”删除。 在“信息框子程序”添加两个文本型参数“参数1”和“参数2”。 参数的“类型”属性可为空。如果空,默认为整数型。 按F5键,程

7、序无法运行,在输出面板中可以看到出错提示。这就说明我们还要在调用上述子程序时提供具体的参数。 用光标选中此行并双击,在括号内添加“,”号,按Enter键。 看到了吗?调用子程序的命令前多了个“”号,我们可以将它展开。 展开的方 法:直接双击或用键盘上的 右光标键。 169 参数提示和实际参数的内容是互相对应的,在上面添加文本型数据“易语言”,当程序运行时,下面“参数1”保存的数据就是“易语言”。 接下来我们在程序中为子程序提供具体的参数数据。用“Ctrl+Tab”组合键切换到界面设计状态,在窗体上添加两个标签和两个编辑框,并将标签的标题属性设置为“输入123”,提示用户。 这是前面提到的“按钮

8、1”,下面的是“按钮2”。 标签的标题在此处设置。 切换到代码编辑状态,在子程序调用处,分别为两个参数提供数据。 170 修改“信息框子程序”代码。 按F5键运行程序,在“编辑框1”和“编辑框2”中输入“123”,单击“按钮1”,第一个信息框被弹出。你也可以输入其它的数据,看一看效果。 子程序如需要接收参数数据,必须先在子程序定义处的参数表部分定义所需的参数。调用有参数的子程序时所传递过来的数据将被顺序地填入对应的参数中。如果传递过来的数据与对应位置处的参数数据类型不一致,在可以互相转换时,系统将自动将传递过来的数据转换成对应参数的数据类型后再赋值给该参数;如果不能转换,就会产生运行时错误。如

9、上面的第 2 步在调用子程序的同时就把“编辑框1.内容”和“编辑框2.内容”作为参数数据对应地传递到了编辑框子程序内的两个参数“参数1”和“参数2”内。 171 8.5 参数的可空属性 参数可空,就是说该参数是可选的,从字面上就能理解它的意思。就是在调用子程序时,可以不提供该参数所需的数据。看看下面的例子。 将“参数2”可空属性选中。方法是,选中该处单元格再单击或选中后按空格键。 把调用处的“参数2”删除。 如果某个参数的“可空”属性为真,那么在调用本子程序时,可以不给此参数传递数据。可空的参数主要用于支持具有默认值的参数;另外,如果给某个子程序添加了新参数却又不想去更改以前调用此子程序的代码

10、,那么只要将新参数设置为可空参数就行了。 172 8.6 参数的参考属性 173 打个比方,你家的门锁有两把钥匙,分别由两个人拿着。不管是哪一个人都可以打开房门,改变家里家具的摆放位置。如果子过程的参数具有“参考”属性,那么,当调用子程序时负责提供该参数数据的是一个变量的话,在子程序中修改了该参数的值,那个变量的值也会跟着被改变。 在“_按钮1_被单击”事件子程序中添加两个局部变量。 把编辑框提供的文本型数据转换到整数型。 注意: 文本型数据默认具有参考属性,所以此例中为了演示参数的参考属性,把文本型数据转换到整数型。 添加信息框,显示调用子程序后,“变量2”的值。 将“信息框子程序”两个参数

11、的类型改为整数型。 添加代码,修改“参数2”的值。 注意: 为了更好地了解程序的运行过程,可以通过在关键代码行前设置断点的方法来跟踪代码行的执行情况。 在代码行前设置断点。 设置断点的方法:用光标选中将被设置断点的代码行,再按F9键。 按F5键运行程序,在启动窗口的编辑框中输入“123”,单击“按钮1”。 窗口消失,程序停止,一个断点变黄。这就说明在“_按钮1_被单击”事件子程序中,第一个断点处的“信息框子程序”将被执行。 174 “参数2”的值被改变。 “参数1”的值是“变量1”的值。两个条件都成立。 再按F5键,“信息框子程序”里的代码被执行。说明子程序已经被调用。 再按F5键,断点变为红

12、色,弹出条件成立的信息框。 单击“确定”按钮。 程序又跳到了“信息框子程序”被调用处的下一行代码处,说明“信息框子程序”执行完毕。 再按F5键,弹出“_按钮1_被单击”事件子程序中的信息框。 即使“参数2”的数据被改变,“变量2”仍保存原值。 “参数2”没有设置参考。 由于运行开始时“编辑框1”内的数据为空文本,转换到整数后为“0”。 175 单击“确定”按钮,代码运行结束。关闭程序,然后设置“参数2”的参考属性,设置“参数2”的参考属性的方法类似可空属性的设置,在参数定义表“参考”栏相应空格内单击使之出现一个“”号。 按F5键运行。最后信息框显示“变量2”的值和“参数2”的值是相同的。 当使

13、用变量向子程序的参数传递数据时,如果所传递过来的变量为数组、用户定义数据类型、库定义数据类型、字节集型或文本型,则无论参数的“参考”属性是否为真,都将是传递变量的指针,这样在子程序中改变该参数的值时相应变量的值也会被改变;如果所传递过来的变量类型与相应参数的数据类型不一致但可以相互转换,譬如将整数型变量传递到小数型的参数时,则在数据被实际传递前,系统将首先自动将整数型变量的值转换为小数型数据,然后再进行传递,在这种情况下,即使参数的“参考”属性为真,系统也无法传递指向原变量的指针,只能传递经过类型转换后的变量的值。如果系统将数据指针成功地传递过来,那么在子程序中对此参数内容的更改将会相应地反映

14、到调用子程序时负责提供相应参数数据的变量上。 8.7 子程序的返回值 子程序可以返回数据,称为返回值,但必须首先定义返回值的类型,并且要在子程序中使用“返回”命令进行返回。 176 将“信息框子程序”的返回值类型设置为整数型。 删除下面两行代码。 参数2 123 信息框 (“参考的使用方法。” #换行符 “变量2=” 到文本 (变量2), 0,) 在“_按钮1_被单击”事件子程序中 添加名称为“返回值”的整数型变量。 “返回值”变量用来保存“信息 框子程序”返回的整数型数值。 在“信息框子程序”的每个分支 处添加返回命令。 将“信息框子程 序”里的两个“信息 框”命令复制到“_ 按钮1_被单击

15、”子程 序的判断语句中。 最后按F5键运 行程序。 177 调用一个子程序时,子程序中的所有命令将从第一条开始顺序执行,当执行到子程序尾部或者遇到“返回”命令时即返回到调用此子程序命令的下一条命令处。当一个子程序有返回值时,如果需要使用该返回值,可以把子程序调用命令嵌在其它命令中,如“变量1=变量2+子程序名+变量3”有返回值),也可以建立一个与该返回值数据类型相同的变量来接收该返回值,即使用“变量名=子程序名”的形式。 8.8课后练习 练习子程序的建立与调用。 新建“Windows窗口程序”添加一个按钮。 添加如图上的代码。 完成后运行一下程序看看。 这两个地方添加什么值,才可以使程序运行,

16、并且能够正确显示呢?请大家来将这两个命令补充完整。 178 练习编写用子程序的方式表示两数相加,返回和的例程。 , 新建易程序,放两个编辑框组件与一个按钮组件,双击按钮组件,进入程序代码界面。 新建一个子程序, 名称为:“和是几”。加 入两个数。参数类型为 整数型。返回值类型为 整数型。 在“_按钮1_.被单击”事件子程序下输入以下程序代码: 信息框 (和是几 (到数值 (编辑框1.内容), 到数值 (编辑框2.内容), 0, ) 在“和是几”子程序下输入以下程序代码: 返回 最后按F5键运行程序看看。 179 用子程序的方式编写判断两个数大小的程序,并返回最大数。 新建易程序,放两个编辑框组件与一 个按钮组件,双击按钮组件,进入程序代 码界面。 新建一个子程序,名称为:“谁最大”。加入两个数。参数类型为整数型。返回值类型为整数型。 在“_按钮1.被单击”子程序下输入以下程序代码: 信息框 (和是几 (到数值 (编辑框1.内容), 到数值 (编辑框2.内容), 0, ) 在“和是几”子程序下输入以下程序代码: 如果 (数1 数2) 返回 (数1) 否则 返回 (数2) 如果结束 最后按F5键运行程序。大家再留意一下,“如果”命令还有这种形式的,这种形式的“如果”命令虽然占的代码行稍多,但逻辑很清晰,提倡大家以后在使用“如果”命令时多使用这种形式。 180

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号