labview編程技巧-----令人無(wú)奈的IF ELSE
編程語(yǔ)言都具有順序,條件轉(zhuǎn)移和循環(huán)三種基本結(jié)構(gòu).LV的IF ELSE常常令人很無(wú)奈.
if(condition1)
........
else if (condition2)
........
else if (condition3)
類(lèi)似與上面的條件結(jié)構(gòu)在其他編程語(yǔ)言中很容易實(shí)現(xiàn),在LV中卻是個(gè)問(wèn)題.
1.如果超過(guò)三層IF ELSE判斷,LV中則很難讀懂代碼,嵌套太多了
2.LV的IF結(jié)構(gòu)必須通過(guò)隧道傳遞數(shù)值,即使這個(gè)值有時(shí)是根本不需要的.
比如:
if (a==1)
b=2;
else
c=3;
當(dāng)變量a=1時(shí),令變量b=2,當(dāng)變量a!=1時(shí),令C=2
但是在LV中,當(dāng)變量a=1時(shí),在令變量b=2的同時(shí),還必須處理C,而此時(shí)我們根本不想對(duì)C進(jìn)行任何操作.同理,當(dāng)a!=1時(shí),我們也不得不處理b的問(wèn)題.
有網(wǎng)友提問(wèn):
Hi
I like to do the following statements in LabVIEW,
IF AoValue<=0.1 THEN
AoValue1=(AoValue-0.0060)
ELSEIF (AoValue >0.1) AND (AoValue<0.2) THEN
AoValue1=(AoValue-0.0060)
ELSEIF (AoValue >0.1) AND (AoValue<0.2) THEN
AoValue1=(AoValue-0.0035)
ENDIF
ENDIF
Pls help with this
Thanks
網(wǎng)友答案:
這是個(gè)兩層的IF ELSE結(jié)構(gòu),如果數(shù)據(jù)分成10段那,那上面的判斷結(jié)構(gòu)將無(wú)法實(shí)現(xiàn)了.(另外,他的AOVALUE應(yīng)該是個(gè)輸入控件)
比較好的解決方法:
如果是數(shù)值類(lèi)比較,更好的方法是利用公式節(jié)點(diǎn).
評(píng)論