LabVIEW又称为G语言,简单易学、形象直观,采用图形化的编程方式,是专为测试、测量和控制应用而设计的系统工程软件。
在前面两篇文章(请参考:顺序结构、条件结构)中分别讲了顺序结构与条件结构的编程方法,下面通过具体例子演示循环结构的编程使用方法。
循环结构框架特点
对于循环结构,同C语言类似,LabVIEW中提供了两种实现方式,分别为for循环和While循环,其框架样式分别如下图所示:
上图中,左边为for循环框,右边为while循环框,这两种循环的特点是:
1. 两个循环框都有计数端口“i”,用以标记当前运行的次数。
2. For循环框多用于循环次数已知的情况,循环次数由端口“N”接入;while循环则多用于循环次数未知的情况,其循环的终止条件由条件端口给出。
3. While循环不满足条件也要执行1次,即至少执行一次;for循环当N<1时可一次都不执行。
4. 在循环框上,可通过移位寄存器存储某个变量前面几次循环的值。
5. 在循环框上,当用连线工具连接循环框内外的数据端口时,在框架上会自动形成一个方形的数据通道图标,图标空心表明此时数据通道具有自动索引功能,图标实心则不能索引。这儿的自动索引是指将循环框外面的数组成员逐个依次进入循环体内,或将循环框内的数据累加成一个数组输出到循环框外面。
下面通过简单的例子,演示LabVIEW中for循环和while循环编程的方法。
基本示例1:计算1-10之间所有整数的和
本例要求计算1-10之间所有整数的和。可用for循环,也可用while循环,配合初始值为0的移位寄存器,可以很容易的求得计算结果为55。
使用for循环,设置循环次数为10次,程序框图代码如下图所示:
使用while循环,终止条件在右键菜单中可设置为“真(T)时停止”或者“真(T)时继续”,程序框图代码分别如下图所示:
左图中终止条件设置为“真(T)时停止”,意味着当“i+1”的值即当前数值≥10时退出循环。
右图中终止条件设置为“真(T)时继续”,意味着只要“i+1”的值即当前数值<10时就一直执行循环。
实际上这两种方式是完全等价的,终止条件的设置完全取决于个人的编程习惯。
扩展示例2:如何在循环执行的过程中退出循环
在上例的基础上思考下面的问题,在计算1-10之间所有整数和的过程中,要求当数值加到5时就退出循环,即只计算1-5之间所有整数的和,在循环中如何实现?实际上这类似于C语言中的break语句的功能实现。
先看下for循环中的实现方法。在for循环边框的右键菜单中选择“条件接线端”,则在for循环内部自动添加一个类似while循环的终止条件,将“i+1”与5进行相等比较后的布尔值连接到这个终止条件上,就可实现要求的功能。程序框图代码如下图所示:
对于while循环实现则相对较简单,只需在终止条件上额外再添加一种退出情况即可,即修改后的终止条件改为,“i+1”的值只要满足“≥10”或者“=5”就要退出循环。程序框图代码如下图所示:
扩展示例3:如何在循环执行的过程中跳过本次循环
仍然在上例的基础上思考下面的问题,在计算1-10之间所有整数和的过程中,要求当数值等于5时不计入求和结果中,即只计算1-10之间除5以外所有整数的和,在循环中如何实现?这个问题实际上这类似于C语言中的continue语句的功能实现。
在LabVIEW语言的循环中并未直接提供continue语句功能的实现,但我们可以通过在循环内部嵌套条件结构,从而变相实现这个功能。
使用for循环实现时,在循环内部对当前“i+1”的值进行判断,当不等于5时,在移位寄存器中加入当前“i+1”的值,否则,移位寄存器的值保留为上次的值,程序框图代码如下图所示:
使用while循环实现时,其思路完全类似,程序框图代码如下图所示:
总结
本文对于LabVIEW中的for及while循环结构,给出了其配合移位寄存器使用的基本编程方法,同时,也给出了类似C语言中“break”语句及“continue”语句的实现方法。从这儿可看出,高级编程语言之间都是相通的,如果你有了C或者其它编程语言的基础,那么,对比着理解学习LabVIEW将会是一件非常简单的事情。
本文由编码那些事原创,请关注+转发+收藏+点赞,带你一起长知识!