VFP表達式和運算符

字號:

一.表達式:表達式是vfp命令和函數(shù)的重要組成部分,是由常量、變量、函數(shù)用運算符連接而成的有意義的式子
     二.運算符:
    1.算術運算符:算術運算符用于進行算術運算,連接起來的表達式稱為算術表達式,結果是一個數(shù)值.如下表:
    運算符功能
    +,-正負號
    **,^冪
    *,/,%乘,除,取余
    +,-加,減
    優(yōu)先級從高到低為:**,^→*,/,%→+,-
    例:將(55+9×5)÷2寫成vfp算術表達式.
    我們在命令窗口輸入并執(zhí)行下列:
    ?(55+9*5)/2 &&結果可以口算,是50
    2.字符運算符:用于字符串連接運算,結果是一個新的字符串,如下表:
    運算符功能
    +將+號前后字符串連接起來組成一個新的字符串
    -刪除-號前面字符串的尾部空格后再與右側的字符串組成新的字符串
    例:在命令窗口輸入執(zhí)行以下:
    a="abc " &&abc后面有兩個空格
    b="def " &&def后面有兩個空格
    c="ghi"
    ?a+b+c &&完全連接,下行是運行結果
    abc def ghi
    x=a-b-c
    ?x &&下行是結果
    abcdefghi
    3.日期運算符:用于進行日期運算,如下表:
    運算符功能
    +日期+天數(shù)得到新日期
    時間+秒數(shù)得到新時間
    -日期-日期得到間隔天數(shù)
    時間-時間得到間隔秒數(shù)
    日期運行符無優(yōu)先級
    例1:計算香港回歸距現(xiàn)在多少天.
    ?date()-{^1997.10.01} &&date()函數(shù)用于取得當前日期.
    例2:計算距今天1000天的日期.
    ?date()+1000
    4.關系運算符:用于進行關系運算,結果是邏輯值,如下表:
    運算符功能
    <小于
    >大于
    =等于
    <>,#,!=不等于
    <=小于等于
    >=大于等于
    ==字符串全等比較
    $包含運算,判斷左側字符串是否是右側字符串的子串
    例:輸入并執(zhí)行下列命令:
    a=1234 &&定義數(shù)值常量
    b=2345 &&定義數(shù)值常量
    ?a    .t. &&關系成立取真值
    ?a>b &&數(shù)值比較
    .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.邏輯或
    邏輯運算符的優(yōu)先級:邏輯非→邏輯與→邏輯或
    邏輯運算符的意義是:
    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    .T.
    ?a    .T. &&兩邊都為真,結果為真