为有牺牲多壮志,敢教日月换新天。

LabVIEW(十一):条件结构的巧用

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

➤微信公众号:MindDraft
➤博主域名:https://www.zengqiang.org
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/9697783.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

 

一、LabVIEW中条件结构使用起来并不是那么简便,主要体现在两点:

1、由隧道的产生引起的一些问题。(当箭头停留在隧道处时不显示为“自动索引隧道”,所以此隧道非彼隧道)

2、由多层结构判断引起的不易修改、易读性差的问题。

二、由隧道的产生引起的一些问题。

1、当条件结构中的数据赋值到条件结构外面的时候,就会产生隧道。

2、隧道的作用:在该处相当于一个临时寄存器。所谓“临时寄存器”就是无论这个条件结构是真分支或者假分支,,条件结构的数值都要先传递到这个隧道,然后由这个隧道传递到条件结构的外面,例如由显示控件显示。这个隧道必须是:无论真分支还是假分支,无论这个分支是否执行一定代码,都必须有数值来赋值给这个隧道。但在C语言或者C#中不需要对假分支进行赋值,也即else可以有也可以没有。

3、没有LabVIEW代码的分支可以采用默认设置:

(1)、选中隧道右键>未连接时使用默认

(2)、数值类型默认值是0,布尔类型的默认值是False,字符串类型的默认值是空字符串。

(3)、“未连接时使用默认”是相对于所有分支而言的,并不是指要在特定分支设置。

(4)、只有if没有else的语句,无论嵌套多少层条件结构,其产生隧道都设置为“未连接时使用默认”,对于多分支选择的情况,把有代码内容的分支写好后,即可把产生的隧道设置为“未连接时使用默认”。

4、如果不使用隧道,直接将显示控件放入条件结构中。

缺点:对于多层嵌套条件结构,只对该层条件结构中的控件起作用,其他层的控件会显示上一次的显示结果,不会进行默认值赋值,这可能会在程序或项目研究中引起一些问题。但应根据实际情况选择适合的形式进行编程,因为有时可能需要这样的效果。

三、由多层结构判断引起的嵌套层不易修改、易读性差的问题。

解决方法:将判断条件结果组合成一个布尔值,再将布尔数组转换为对应不同情况下的布尔数值,将数值连接到条件结构,设定好相应分支的数值。

1、程序框图右键>比较>判定范围并强制转换,让每个条件生成一个布尔值。

“判定范围并强制转换”函数:依据上限和下限,确定x是否在指定的范围内,还可选择将值强制转换至范围内。只在比较元素模式下进行强制转换。如所有输入都是时间标识值,该函数接受时间标识。用户可更改函数的比较模式。连线板可显示该多态函数的默认数据类型。

2、前面板右键>“数组、矩阵与簇”>数组。或由程序框图中创建显示控件得到。

将判断条件获得的布尔值组合成数组。

3、程序框图右键>布尔>布尔数组至数值转换

“布尔数组至数值转换”函数: 使用布尔数组作为数字的二进制表示,使布尔数组转换为整数或定点数。如数字有符号,LabVIEW可使数组作为数字的补数表示。数组的第一个元素与数字的最低有效位相对应。例如,如连线含两个元素的布尔数组至该函数,两个元素都不为TRUE时,该函数返回0;如第一个元素的布尔值为TRUE,函数返回1;如第二个布尔值为TRUE,函数返回2;如两个元素均为TRUE,函数返回3。

4、如果其中一个为1,则其他为0,注意是否还有一种特例的情况:是全部为0。分支结果则有0,1,2,4,8,16,……等等这样的2的N次方的结果分支。各分支可以按照顺序获得,例如有三个条件,从上往下第二个条件是1,则其它条件是0,将数组从下往上得到的二进制就是010.即为条件分支为2的那个分支,以此类推。

posted @ 2018-09-25 08:48  为敢技术  阅读(7875)  评论(0编辑  收藏  举报