条件结构(CASE)是LV常用结构之一,最为典型的条件结构是含有过错处理的条件结构,常常用于防止运用次序结构。与C言语的条件结构不同,关于显现控件,一切的CASE分支有必要对显现控件传递数据(赋值)或许直接运用默认值,不允许不输出。
在条件结构中,处理显现控件有两种彻底不同的办法,这两种办法尽管标明上看不同不大,在详细编程中都或许运用过,可是关于大型数据处理,比方大的数组,运转功率不同极大,或许不经意间形成程序运转缓慢,且不易查错。
办法一:条件结构外处理显现输入控件和显现控件。这种办法中,输入控件和显现控件均坐落条件结构分支之外。如下图所示:
办法2:条件结构内处理输入控件和显现控件控件。这种办法中,输入控件和显现控件坐落条件结构分支中,从程序框图上看,好像更为简练,但却是十分过错的,如下图所示。
办法2中,过错分支中没有进行任何处理,输入控件和显现控件坐落无过错分支中。
OUT,VI和IN.VI完成的功用是彻底相同的,可是运转功率却是大相径庭,数组越大,差异更为显着。当然不同的核算机上,运转时刻会有差异。下面是测验程序框图。
下面是测验成果,二者的运转时刻相差20000多倍。
下面引进一个“顶层程序框图”,顶层程序框图常见于LV爱好者的文章中,LV的相关书本中没有这样的概念。OUT.VI中,输入控件坐落左边,显现控件坐落右侧,均坐落一切结构之外,一切结构之外称作“顶层程序框图”,类似于C言语中的形参部分。
顶层程序框图中,运转功率是极高的,这是由于在进入子VI之前,LV很简单能够断定,缓存是能够重用的,因而不需要在循环中,每次仿制数组。可是输入控件和显现控件坐落条件分支内部时,LV或许无法断定缓存是能够重用的,因而选用的值仿制的办法,这样献身了功率,可是确保了正确的成果。
办法二中,表面上看好像更为合理,但却是过错的,因而能够得出结论,子VI中的输入控件和显现控件应该坐落顶层程序框图中,不应该坐落任何结构之中。