5.4 控制程序流程--条件结构
VIEW——北方客栈主页
LabVIEW编程思想(New)
“csxcs_366“——主页
“LabVIEW7i”——主页
LabVIEW 编程思想讨论区
VI Design
外行看热闹,内行看门道
"花开不懈"的技术文章
最新发布
我们的朋友遍天下!
网络实用技术
LabVIEW和NXT-G的排名
下载中心
LabVIEW专业术语表(英——汉)
承接虚拟仪器项目咨询和项目设计开发
如何留言
关于Weebly
欢迎链接本站
LabVIEW——北方客栈主页
2011年2月6日,第一稿
2011年7月23日,第二稿
5.4 控制程序流程——条件结构
基本的条件结构依赖于关系运算符和逻辑运算符的运算结果(真或假)来确定程序的所执行流程。条件结构在图形化语言中也被称为:Case结构。它出现在函数选板》结构子选板中。
其实图形化语言中还有一个简单的类似于条件结构的选择函数,它就是函数选板》比较选板》选择函数。选择函数可以简单的处理程序中的选择结果。
5.4.1 基本条件结构的图形化表示方法
条件结构是大多数编程语言都具备的基本结构之一,图形化的条件结构如下图所示。
图 5-34 条件结构的图形化表示方法
图形化条件结构包括这样几个部分:
条件结构边框,类似于代码的城墙,在条件结构框架内放置所要执行的程序代码。基本条件结构有两个层叠在一起的框架。
条件结构分支选择器,它位于条件结构框架的右端,用一个?号来表示。基本条件结构接受的是布尔量(真或假)。根据这个布尔量确定所执行的程序内容。
选择器标签,用来显示当前的条件结构程序代码。用鼠标点击向下的箭头,可以看到目前的所选择的框架。用鼠标点击横向的箭头可以改变目前所显示的框架。
基本条件结构的外观有些类似于层叠式结构(只能看到其中一帧的内容)。所不同的是条件结构每次只能执行所确定帧的程序代码,而层叠式顺序结构则要执行每一帧中的程序代码。
5.4.2 基本条件结构的数据流运行机制
当程序执行到基本条件结构时,条件结构首先判断条件结构分支选择器中的内容是真还是假,如果是真则自动执行case结构中真的程序代码;如果是假则自动执行case结构中假的程序代码。
还记得我们在子VI设计中就使用错误簇来控制条件结构分支选择器,创建一个带错误处理的子VI框架。该框架在当前面的程序中没有错误发生时,执行无错误的子VI程序代码,当前面的程序中有错误发生时,程序将放弃子VI代码的执行,直接将错误信息传递到下一个节点。参见下图所示。
图 5-35 带有错误簇的子VI框架,没有错误发生时
图 5-36 带有错误簇的子VI框架,有错误发生时
这是数据流运行机制最完美的表现手法之一,即能够快速传递错误信息,又确保数据流运行有效、合理及畅通。这个框架已经作为标准VI放置在LabVIEW的基于模版的文件夹中,供开发者使用。
这里需要注意的是:当我们在case结构的一帧进行连线,而另一帧中确不连线时(隧道端口),程序会报错。只要我们按下图所示勾选快捷菜单中的“未连线时使用默认”即可消除错误。
图 5-37 勾选未连线时使用默认
5.4.3 复杂条件结构
基本条件结构只能识别布尔量的真或假。换句话说,基本条件结构只有确定性的两个状态。比如错误簇所控制的条件结构。如果我们需要复杂条件下的多种状态,如何解决?
实际上,图形化的条件结构的分支选择器对多种数据类型都可以自动识别,除了布尔类型外还包括了枚举、整数、字符串等数据类型。其实,对于复杂条件结构除了条件发生变化外,其它包括数据流运行机制都是一样的。下面我们分别进行讨论。
枚举
在图形化语言中,枚举数据类型应用的非常广泛。枚举类型是与文本项相关的整数。我们可以为从零开始的整数分配相对应的名称。在case结构中,输入枚举类型数据会在选择器标签中显示出相对应的名称。
最常用的枚举控件有三种,包括枚举控件、选项卡控件、单选按钮控件。参见下图。
图 5-38 枚举类型控件
对于选项卡控件和单选按钮控件可以直接与case结构相连接,case结构会自动在选择器标签页中给出对应的名称。参见下图。
图 5-39 选项卡控件和单选按钮控件可直接与case结构相连接
这样我们就可以通过选项卡控件和单选按钮控件直接来控制程序的执行流程。甚至使用选项卡控件来同时控制前面板上显示不同的对象或结果。
枚举控件的应用也包括两种:一种是通过枚举控件来控制case;另一种是用枚举常数来控制case结构。由于控件与常数之间本身很容易实现转换,这里仅讨论控件的使用情况。
当我们在前面板上放置一个枚举控件时,它的文本项内容是空的,需要我们来填写。此时如果与case结构相连系统会提示出错。填写文本项只能在前面板上进行,具体操作是:在前面版上用鼠标右键单击枚举控件,在弹出的快捷菜单中选择确定:编辑项。
此时系统会弹出枚举控件的属性列表,在这里就可以填写文本项的内容。比如我们按顺序填写:红、黄、绿、蓝后点击确定,并将枚举控件与case结构相连,会看到下面显示的结果。
图 5-40 枚举控件与case结构相连接
此时我们看到,选择器标签中只显示出红、黄两项,而实际上我们添写了四项。对于这种情况我们可以右键点击case结构,在弹出的快捷菜单中选择:为每个值添加分支;即可实现红、黄、绿、蓝的分支控制。
使用枚举类型时,默认选择项是必须预先定义,否则程序会报错。上图中我们看到红为默认选择项,通过快捷菜单可以更改默认项的分支。
整数
整数与枚举不同,它只能在选择器标签中显示数字,并且它无法为每个值添加分支,只能一个一个的填写。同时也必须预先设定分支的默认值。
下拉列表控件因为使用的也是整数,所以特点与整数相同。
字符串
字符串也可以控制case结构,但要注意输入字符串的写法要与选择器标签页(必须单独填写)的写法一致,不经意的空格都可能成为出错的原因。
纵观上述内容,我们觉得使用中最优先考虑的还是枚举类型。
5.4.4 最简单的条件选择
Case结构由于层叠在一起,很不便于读程序代码。有些时候在布尔条件下,如果执行代码本身很简洁,可以考虑放弃case结构而选择使用函数中的选择函数。比如我们想控制字符串控件的字体颜色,可选择下图所示的方案。
图 5-41 颜色不同的字体
显然,这比使用case结构更清晰、简单。