shift register 與循環(huán)結構
我非常喜歡C語言,也是我在實際工作中用的最多的,C的編程思維和LABVIEW的編程思維有很大不同,如果完全按照C的思維來做LABVIEW的程序經(jīng)常是事倍功半,但是有很多相似的情況,經(jīng)常比對兩種方式,對提高LABVIEW的編程水平很有幫助,LABVIEW有很多它獨特的編程思想,建議大家看看一切隨緣老師的BLOG.
任何編程語言,都必須具有三種的基本結構:順序結構,跳轉結構和循環(huán)結構,LABVIEW也不例外,它的循環(huán)結構獨具特色,需要深入探討和思索.
C中提供了幾種基本的循環(huán)結構,簡單介紹如下
在C語言中,可用以下語句實現(xiàn)循環(huán):
( 1 )用 for 語句。
( 2 )用 do-while 語句。
( 3 )用 while 語句。
( 4 )用 goto 語句和 if 語句構成循環(huán)
labview 只有兩種循環(huán)結構 FOR ,WHILE(實際上是DO WHILE)
FOR循環(huán)的執(zhí)行過程是:(可以看到有兩個基本的控制N和I)
首先檢查I是否>=N,當條件滿足的情況下退出循環(huán),不滿足條件時執(zhí)行相應代碼,代碼結束后,執(zhí)行I+1的操作
可以看的出來FOR執(zhí)行第一次的時候,I的輸出結果是0,說明執(zhí)行代碼時并沒有進行加一操作,也肯定不是在循環(huán)進行前,如果是這樣,那I應該輸出1才對,所以說只能是代碼執(zhí)行完畢后進行的.
它的過程應該是:比較N和I--->運行代碼--->加一操作.
根據(jù)I最后一次輸出的結果,它的實際運行次數(shù) N=I+1
今天我們要重點探索N=0和N=1兩種情況.
N=0時,可以稱為空循環(huán),也就是代碼一次也不執(zhí)行.
可能很多人都用過空循環(huán)的特殊功能,它可以創(chuàng)建一個空數(shù)組,這個功能很有價值.
當N=1時,和我提到的FUNCTION GOBAL中WHILE的用法是一致的,完全可以用N=1for循環(huán)代替,只需要循環(huán)執(zhí)行一次,目的是使用SHIFTREGISTER.
從上面右圖可以看出,LABVIEW的WHILE循環(huán)的確是DO WHILE,它檢查是否結束運行是在代碼運行后,既然是DO?。祝龋桑蹋?,所以內(nèi)部代碼至少執(zhí)行一次,因此,WHILE循環(huán)沒有FOR循環(huán)自動生成EMPTY?。粒遥遥粒俚哪芰Γ?/p>
能否實現(xiàn)C中的WHILE循環(huán)那,很簡單,在LABVIEW的WHILE循環(huán)加一個I=0的運行判斷就可以了.
這是LABVIEW圖形編程中提到的一個軟件定時觸發(fā)的例子,可以看到它有個I的輸入端子,目的就是實現(xiàn)上面所說首次運行初始化.
一般的FOR,WHILE功能書上介紹的很多了,我只是想向大家介紹一些特殊的用法.