一。表達式:表達式是vfp命令和函數的重要組成部分,是由常量、變量、函數用運算符連接而成的有意義的式子
二。運算符:
1.算術運算符:算術運算符用于進行算術運算,連接起來的表達式稱為算術表達式,結果是一個數值。如下表:
運算符 | 功能 |
+,- | 正負號 |
**,^ | 冪 |
*,/,% | 乘,除,取余 |
+,- | 加,減 |
優先級從高到低為:**,^→*,/,%→+,-
例:將(55+9×5)÷2寫成vfp算術表達式。
我們在命令窗口輸入并執行下列:
?(55+9*5)/2 &&結果可以口算,是50
2.字符運算符:用于字符串連接運算,結果是一個新的字符串,如下表:
運算符 | 功能 |
+ | 將+號前后字符串連接起來組成一個新的字符串 |
- | 刪除-號前面字符串的尾部空格后再與右側的字符串組成新的字符串 |
例:在命令窗口輸入執行以下:
a="abc " &&abc后面有兩個空格
b="def " &&def后面有兩個空格
c="ghi"
?a+b+c &&完全連接,下行是運行結果
abc def ghi
x=a-b-c
?x &&下行是結果
abcdefghi
Visual FoxPro基礎教程完整版
3.日期運算符:用于進行日期運算,如下表:
運算符 | 功能 |
+ | 日期+天數得到新日期 時間+秒數得到新時間 |
- | 日期-日期得到間隔天數 時間-時間得到間隔秒數 |
日期運行符無優先級
例1:計算香港回歸距現在多少天。
?date()-{^1997.10.01} &&date()函數用于取得當前日期。
例2:計算距今天1000天的日期。
?date()+1000
4.關系運算符:用于進行關系運算,結果是邏輯值,如下表:
運算符 | 功能 |
< | 小于 |
> | 大于 |
= | 等于 |
<>,#,!= | 不等于 |
<= | 小于等于 |
>= | 大于等于 |
== | 字符串全等比較 |
例:輸入并執行下列命令:
a=1234 &&定義數值常量
b=2345 &&定義數值常量
?a<b &&數值比較
.t. &&關系成立取真值
?a>b &&數值比較
.F. &&關系不成立,取假值
x="a" &&定義字符常量
y="b" &&定義字符常量
?x>y &&比較a和b字符的ASCⅡ碼
.f. &&a和b的ASCⅡ碼分別是97和98,關系不成立取邏輯假值
?"bc"$"abcd" &&比較$左邊的字符串是否是其右邊的字符串的子串
.T. &&是其子串,取邏輯真值
?"ac"$"abcd" &&比較$左邊的字符串是否是其右邊的字符串的子串
.F. &&不是其子串,取邏輯假值
?"abcd"="abc" &&比較等號右邊字符串是否是其左邊字符串從首字符起的子串
.T. &&是其子串,取邏輯真值
?"abcd"="bcd" &&比較等號右邊字符串是否是其左邊字符串從首字符起的子串
.F. &&不是其子串,取邏輯假值
?"abcd"=="abc" &&字符串等長并完全相同比較
.F. &&不等長取邏輯假值
5.邏輯運算符:用于作表達式之間的邏輯運算,參加運算的表達式應有邏輯值。運算的結果是邏輯值,如下表:
運算符 | 功能 |
.Not.,! | 邏輯非 |
.and. | 邏輯與 |
.or. | 邏輯或 |
邏輯運算符的優先級:邏輯非→邏輯與→邏輯或
邏輯運算符的意義是:
A.and.B 只有當A和B都為真時,邏輯運算的結果才為真,否則為假
A.or.B A和B中有一個為真,結果卻為真
.Not.A 當A為真值時,結果為假值,當A為假值時,結果為真值。
例:
y=.f. &&y的值為邏輯假
?.Not.y
.T. &&對y值取反,結果為真
a=3
b=9
?a<b
.T.
?a<b.andNot.y
.T. &&兩邊都為真,結果為真