在基于文本的语言中,您可能熟悉if、if-else或switch语句;而在LabVIEW中,简单if语句的等效结构是选择结构,如果有必要提供更多输入选择(如if-else或switch语句),则可以使用条件结构。与基于文本的语言的等效结构一样,LabVIEW代码的执行情况取决于输入的值。本文档讨论如何构建代码,以达到与if、if-else或switch语句类似的效果。
对于简单的条件和操作,选择函数可达到与if语句类似的效果。您可以在“函数”(Functions)»“编程”(Programming)>>“比较”(Comparison)>>“选择”(Select)下找到选择函数。选择函数可接受三种输入。从上到下按顺序列出的输入如下所示:
选择器输入接受布尔数据。根据选择器数据的值,选择函数返回连线至true或false输入的值。true和false输出可以是各种类型的数据。请参阅下面使用字符串数据类型的范例。
选择函数非常有用,因为您只需要根据输入更改输出。但是,如果您需要根据输入更改执行的代码,则需要使用条件结构。
您可以在“函数选板”(Functions Palette)的“编程”(Programming)>>“结构”(Structures)>>“条件结构”(Case Structure)下找到条件结构。条件结构分为三个部分:
条件结构默认使用一个True条件和一个False条件。对于每个条件,您都可以编写满足相应条件时执行的LabVIEW代码。
条件结构有一个绿色问号输入接线端,称为条件选择器接线端。要在默认True/False条件下使用条件结构,应将布尔输入连线至此接线端,以设置应执行条件的情况。
下面的范例显示了与选择范例类似的代码。关键区别在于使用条件结构时,您可以选择性地执行代码。(如果使用选择函数,您将无法以如下所示的可变方式操作数据[即执行代码]。)
在这个简单的范例中,如果用户输入大于5,则条件选择器将读取一个true布尔值并执行true条件,即用户输入乘以随机数。或者,如果用户输入小于5,则条件选择器将读取一个false布尔值并执行false条件,其中输入乘以更大的随机数。每个条件都有不同的代码以及与其他条件不同的输出。
默认true/false形式的条件结构可用作if语句。不过,使用条件结构的一个优点是,您可以更改选择接线端的数据类型并添加条件,以创建if-else语句和switch语句。
创建条件结构后,您可以将输入选择器的数据类型更改为字符串、整数、枚举或错误簇数据类型。如果将所需数据类型的输入连线至条件选择器,则会自动更改选择器标签选项,以适应您的新数据类型。例如,在下图中,数值数据类型的用户输入连线至选择器接线端,选择器标签当前显示数值选项。
您可以将子程序框图添加到条件结构中,以进行其他比较(或可能的状态)。 条件结构的默认条件用作if-else语句中的else或switch语句的“默认”条件。在每种条件下,执行的代码都基于连线至选择器接线端的输入。
借助可用作switch语句的条件结构,用户可以灵活地输入各种数据类型,同时便于未来修改。除了数值输入外,条件结构还可以使用易于修改的枚举输入作为条件选择器输入。
有关在条件结构中添加、重新排列和复制条件的更多信息,请参考条件结构LabVIEW帮助中的教程。
请参阅labview\examples\Structures\Case Structure中的条件结构-选择器数据类型VI,了解条件结构运用范例。
(请注意,不同版本的LabVIEW的范例文件夹结构标题可能略有不同。)
附件是包含此处讨论的三种结构的VI范例:带有选择器函数的if语句、带有条件结构的if-else语句和带有条件结构的if-else或switch语句。