首页 理论教育 程序嵌套及注意事项与例题分析

程序嵌套及注意事项与例题分析

时间:2023-06-28 理论教育 版权反馈
【摘要】:本节学习要点1.完全理解嵌套的概念2.牢记“嵌套”的注意事项3.理解本节中的例题前面一节介绍了关于流程语句的应用。本节将介绍全新内容—一宏程序嵌套。说到这可以做个总结:当程序进入有嵌套的循环时,结束的顺序是从内向外的!当知道了嵌套的结构以及执行方式后,现在应该牢记嵌套的一些格式问题。这种格式绝对不可行格式二:WHILE循环嵌套一次性使用时,不能超过三层。只车削尺寸φ30mm×50mm图 3-6程序是用了两层嵌套车削外圆轴。

程序嵌套及注意事项与例题分析

本节学习要点

1.完全理解嵌套的概念

2.牢记“嵌套”的注意事项

3.理解本节中的例题

前面一节介绍了关于流程语句的应用。本节将介绍全新内容—一宏程序嵌套。

所谓嵌套,就是一层包着一层。

比如说饺子,它由馅料和饺子皮组成。那么这个饺子皮包着馅料就称为嵌套。饺子皮是第一层,馅料是第二层。那么在宏程序语句中,该如何表示这种关系呢?不妨先看个例题。

例3-6

978-7-111-50222-7-Chapter03-10.jpg

其中,“GE”“GT”分别表示“大于等于”“大于”。

上例程序乍看之下会觉得很混乱,让我们一层层分析吧!首先模拟系统的思维。

当系统执行到“WHILE[#1 GT 0]DO1”这一行的时候,它发现有个“DO1”但还不知道与之对应的“END1”在哪,于是它只能按顺序往下执行。当执行到“WHILE[#2 GT 0]DO2”语句时,它发现了“DO2”,这时候也没发现与之对应的“END2”在哪。但它已经确定一件事:“END2”一定比“END1”提前出现,不然就是错误的!于是系统继续往下执行,最后它发现了“END2”。这个时候系统必须把WHILE[#2 GT 0]DO2END2之间的程序执行完,才能继续往下面走。当执行完“DO2”与“END2”之间的程序后,它往下面执行,终于发现了“END1”。这个时候它已经知道这是个嵌套循环程序!

如果用图形表达这个结构,大致是下面这个模样

例3-7(图3-2)

978-7-111-50222-7-Chapter03-11.jpg

图 3-2

通过例3-7,可以一目了然地理解什么是嵌套了。接下来要讲解嵌套循环的执行顺序,非常关键

在例3-6的文字描述中,提到过“必须把‘WHILE[#2 GT 0]DO2’与‘END2’之间的程序执行完,才能继续往下面走”。现在结合程序,详细分析这句话的意思:

首先当系统执行到“#1=3 WHILE[#1 GT 0]DO1”的时候,它只知道#1这个变量的值是3,并且当#1的结果大于0的话,就循环执行DO1与END1之间的程序段。于是继续执行下面的程序,来到了“#2=2 WHILE[#2 GT 0]DO2”这一段这时候系统知道#2的值是2,并且当#2的结果大于0的话,就执行DO2与END2之间的程序块,同时它也知道当前这一段已经是第二层了。于是继续往下走,执行到“#2=#2−1 END2”这一块的时候,#2的结果发生了变化,现在是1。并且把新的#2带回到“WHILE[#2 GT 0]DO2”做判断,发现经过运算的#2还是大于0,于是继续执行DO2与END2之间的程序。

这时候发现一个非常关键的问题:程序只在DO2和END2之间执行,没有向外面那层#1=#1-1或者END1执行。因为程序目前陷在第二层里,只有第二层的条件不满足了,才会向外面一层执行!

接着上面的继续分析。发现#2的结果还是大于0后,只好再次在DO2与END2里面运行,再次执行“#2=#2−1”。这时候#2的结果是0并且返回到“WHILE[#2 GT 0]DO2”做判断,发现0不大于0因此条件不满足,所以就不执行第二层程序块了,而是执行“#1=#1−1 END1”。这时候#1的结果是2并返回到第一层“WHILE[#1 GT 0]DO1”做判断,结果是满足。满足就继续执行DO1与END1之间的程序块。

然后又开始执行“#2=2 WHILE[#2 GT 0]DO2”这一段。#2的结果又变成2了。因为被重新赋值,于是又开始了第二层的内部循环。一直到第二层程序段不满足条件,才会执行“#1=#1−1 END1”,以此类推。

说到这可以做个总结:当程序进入有嵌套的循环时,结束的顺序是从内向外的!就像进入一个迷宫,从入口走到了迷宫最深处。想走出迷宫,只能从最深处开始向外走。

以上是关于“WHILE…DO”的嵌套格式,至于“IF…GOTO”其实是一个道理。在本节的例题里会讲解它,这里不讨论。

当知道了嵌套的结构以及执行方式后,现在应该牢记嵌套的一些格式问题。

格式一:不能交叉嵌套。(www.xing528.com)

例3-8(图3-3)

978-7-111-50222-7-Chapter03-12.jpg

图 3-3

根据图3-3我们发现,两个循环语句互相交叉了。这种格式绝对不可行

格式二:WHILE循环嵌套一次性使用时,不能超过三层。

例3-9(图3-4)

978-7-111-50222-7-Chapter03-13.jpg

图 3-4

3-4的嵌套是错误的,绝不能超过3层

格式三:只能向循环体外跳转,而不能从外面跳转到循环体内

例3-10(图3-5)

978-7-111-50222-7-Chapter03-14.jpg

图 3-5

在循环语句与跳转语句搭配使用时,一定要注意跳转方向!

现在嵌套执行流程与格式都分析完,最后以一个小例题做总结回顾

例3-11(图3-6)

毛坯:φ40mm×70mm。

只车削尺寸φ30mm×50mm

978-7-111-50222-7-Chapter03-15.jpg

图 3-6

978-7-111-50222-7-Chapter03-16.jpg

程序是用了两层嵌套车削外圆轴。其实在实际加工中没有这个必要。但这里仅仅是举例,加深印象而已。

在上述程序中,当第二层执行好了,会把X向递减。然后再回到“Nl GOX#1”处继续加工。然后又把#2的结果重新赋值为0,重新车到-50处。然后X向退;1并且#l的值递减,于是又回到了“N1 GO X#l”,以此类推。

本节到这里就结束了,请读者一定要消化上述知识点。你可以慢慢学,保证学习质量就行!

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈