zoukankan      html  css  js  c++  java
  • LabVIEW(十一):条件结构的巧用

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

    一、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的那个分支,以此类推。

  • 相关阅读:
    支持国产共享软件
    Win CE 5.0 增加电池电量显示
    [转]C# 系统应用之鼠标模拟技术及自动操作鼠标
    自己写的 读写 ini 配置文件类
    自己写的 Readini 类
    sizeof与strlen()、递归优化题解
    Git学习资源收集汇总
    好用的Google Chrome插件
    【转】C# Socket编程(5)使用TCP Socket
    【转】C# Socket编程(4)初识Socket和数据流
  • 原文地址:https://www.cnblogs.com/strengthen/p/9697783.html
Copyright © 2011-2022 走看看