vf 中if 語句的用法
IF 。 ENDIF命令
有條件地執行一組基于一個邏輯表達式的值的命令。
語法
IF lExpression [THEN]
Commands
[ELSE
Commands]
ENDIF
Arguments
lExpression
指定評估邏輯表達式。如果lExpression的計算結果為真(.T。),任何命令下面的IF或者THEN和前面的ELSE或ENDIF(以先到為準)執行。
如果lExpression中為假(False)和ELSE包括,在else后和endif之前執行任何命令。
如果lExpression中為假(False)和ELSE不包括在內,IF和ENDIF之間的所有命令都會被忽略。在這種情況下,程序繼續執行ENDIF后第一命令。
可以嵌套在另一個IF 。 ENDIF塊的IF 。 ENDIF塊。
可用&&將注釋放在同一行代碼后。這些注釋在編譯和程序執行過程中會被忽略。
IF 。 ENDIF 命令例子:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer && Open customer table
GETEXPR 'Enter condition to locate ' TO gcTemp;
TYPE 'L' DEFAULT 'COMPANY = ""'
LOCATE FOR &gcTemp && Enter LOCATE expression
IF FOUND( ) && Was it found?
DISPLAY && If so, display the record
ELSE && If not found
? 'Condition ' + gcTemp + ' was not found ' && Display a message
ENDIF
USE
VFP中IF語句代碼問題(字符串完全匹配問題)
在VFP中字符串比較有兩種:
(1)用雙等號運算符==比較字符串時,只有當二者完全相同時,結果才為真。
(2)用單等號運算符==比較字符串時,結果與EXACT設置有關。設為off(默認),以右邊字符為準,右邊字符結束,比較即終止。設為on時,先在較短字串后添空格使二者長短一致,再行比較。
你即是采用=比較,并且EXACT采用默認值,所以左邊是“0101010”,右邊是“010101”時,以右邊字符為準,比較6個字符后,右邊字符結束,比較即終止。因為6次比較均相同,所以比較結果為真。
解決方案有兩個:(1)將=改為== ; (2)將判斷語句前面增加語句:set exact on均可。
關于vfp的if語句使用問題
你這樣分兩句執行,兩個條件都滿足會翻兩番:
REPLACE amount WITH amount*2 FOR STUFFNAME = "里布"
REPLACE amount WITH amount*2 FOR "順紆鄒A" $STUFFNAME
如果想滿足兩個條件的才翻一番,應該這樣寫:
REPLACE amount WITH amount*2 FOR STUFFNAME = "里布" .AND. "順紆鄒A" $STUFFNAME
如果滿足任意一個條件都翻一番(最多翻一番),應該這樣寫:
REPLACE amount WITH amount*2 FOR STUFFNAME = "里布" .OR. "順紆鄒A" $STUFFNAME
vf 中 關于if
if len(alltrim(*))=0 WAIT '請輸入用戶名!' WINDOW TIMEOUT 5 else if len(alltrim(*))=0 &&這里應該是text2 WAIT '請輸入登錄密碼!' WINDOW TIMEOUT 5 else if len(alltrim(*))=0 &&這里應該是text3 WAIT '請輸入確認密碼!' WINDOW TIMEOUT 5 else if alltrim(*) == alltrim(*) WAIT '祝賀你!!注冊成功' WINDOW TIMEOUT 5 *e else WAIT '密碼和確認密碼輸入不一致,請重新填寫!' WINDOW TIMEOUT 5 endif endif endifendif。