官术网_书友最值得收藏!

3.2 表達(dá)式的應(yīng)用

表達(dá)式是指用括號和運(yùn)算符把常量、變量以及函數(shù)連接而成的式子,單個的常數(shù)、變量、函數(shù)是一種特殊的表達(dá)式,表達(dá)式具有計算、判斷和數(shù)據(jù)類型轉(zhuǎn)換等作用。表達(dá)式通過計算均能得到一個結(jié)果,稱為表達(dá)式的值。表達(dá)式所用到的運(yùn)算符分為數(shù)值型、字符型、日期型、關(guān)系型和邏輯型等,因而就有相應(yīng)的數(shù)值表達(dá)式、字符串表達(dá)式、日期表達(dá)式、關(guān)系表達(dá)式和邏輯表達(dá)式。

1.數(shù)值、字符與日期時間表達(dá)式

(1)數(shù)值型表達(dá)式

數(shù)值型表達(dá)式是由數(shù)值運(yùn)算符將數(shù)值常量、變量、字段或函數(shù)連接起來構(gòu)成的式子,運(yùn)算結(jié)果為數(shù)值型。常見的算術(shù)運(yùn)算符按優(yōu)先級排列,如表3-1所示。

表3-1 數(shù)值運(yùn)算符

【例3】計算表達(dá)式50-(2**5/8+3)*2的值。

在命令窗口輸入:

?50-(2**5/8+3)*2

屏幕顯示結(jié)果為:

36

【例4】a=7,b=5,計算表達(dá)式(a+b)/(a-b)的值。

在命令窗口輸入:

a=7

b=5

?(a+b)/(a-b)

屏幕顯示結(jié)果為:

6.0000

(2)字符表達(dá)式

字符表達(dá)式由字符型常量、變量、函數(shù)和字符運(yùn)算符組成,其運(yùn)算結(jié)果仍為字符型。字符運(yùn)算符主要有兩類:連接運(yùn)算和包含運(yùn)算。

連接運(yùn)算有完全連接和不完全連接兩種,分別使用運(yùn)算符“+”和“-”,如表3-2所示。

表3-2 字符運(yùn)算符

包含運(yùn)算本應(yīng)歸于關(guān)系運(yùn)算類,由于它是字符串之間特有的關(guān)系運(yùn)算,故將其放在字符表達(dá)式中介紹,包含運(yùn)算的結(jié)果不再是字符型而是邏輯型。

格式:字符串1$字符串2

功能:如果字符串1包含在字符串2中,則表達(dá)式的值為.T.,否則為.F.。

【例5】字符表達(dá)式的應(yīng)用。

在命令窗口輸入:

?"青少年"+"兒童"

屏幕顯示結(jié)果為:

青少年兒童

在命令窗口輸入:

?"青少年"-"兒童"

屏幕顯示結(jié)果為:

青少年兒童

在命令窗口輸入:

?" street "$"sterrr"

屏幕顯示結(jié)果為:

.F.

在命令窗口輸入:

?"street"$" streets"

屏幕顯示結(jié)果為:

.T.

注意:以上所有運(yùn)算符與操作數(shù)組成的表達(dá)式中,操作數(shù)必須是同類型的數(shù)據(jù)。

(3)日期時間表達(dá)式

日期型表達(dá)式由日期型或數(shù)值型常量、變量、函數(shù)和日期運(yùn)算符“+”、“-”組成,其運(yùn)算結(jié)果為日期型或數(shù)值型,如表3-3所示。

“+”運(yùn)算符:如果日期值+數(shù)值表示日期值加天數(shù),日期值+日期型無意義。

“-”運(yùn)算符:如果日期值-數(shù)值表示日期值減天數(shù),日期型-日期型表示兩日期相距的天數(shù)。

表3-3 日期時間運(yùn)算符

【例6】日期時間表達(dá)式的應(yīng)用。

在命令窗口輸入:

?{^2015-06-10}+10

屏幕顯示結(jié)果為:

06/20/15

在命令窗口輸入:

?{^2015-06-10}-10

屏幕顯示結(jié)果為:

05/31/15

在命令窗口輸入:

?{^2015-06-10}-{^2014-06-10}

屏幕顯示結(jié)果為:

365

在命令窗口輸入:

?{^2015-06-10}+{^2014-06-10}

屏幕顯示結(jié)果為:

“操作符/操作數(shù)類型不匹配”的錯誤信息。

2.關(guān)系表達(dá)式

關(guān)系運(yùn)算符是對兩個數(shù)據(jù)進(jìn)行比較操作的一種符號,如表3-4所示,關(guān)系運(yùn)算的結(jié)果一定是邏輯值。

表3-4 關(guān)系運(yùn)算符

在關(guān)系表達(dá)式運(yùn)算時,就是比較同類兩數(shù)據(jù)對象的“大小”,對于不同類型的數(shù)據(jù),其“大小”或是值的大小,或是先后順序。日期或日期時間數(shù)據(jù)則以日期或時間的先后順序為序。默認(rèn)規(guī)則為:

①單個字符:是以字符ASCII碼的大小作為字符的“大小”,也就是有先后順序。

②字符串:從左到右逐個字符進(jìn)行比較,但因系統(tǒng)相關(guān)設(shè)置狀態(tài)不同,比較的結(jié)果與預(yù)期的不完全相同。

③漢字:系統(tǒng)默認(rèn)按漢字的拼音排序漢字的順序,因此漢字的比較實質(zhì)上是以字母的順序進(jìn)行比較。在Visual FoxPro系統(tǒng)中可以設(shè)置漢字按筆畫排列順序,因而,漢字也可以對筆畫數(shù)的多少進(jìn)行“大小”比較。

【例7】日期時間表達(dá)式的應(yīng)用。

在命令窗口輸入:?7*7>25

屏幕顯示結(jié)果為:.T.

在命令窗口輸入: ?"abcde"<"abc"

屏幕顯示結(jié)果為:.F.

在命令窗口輸入: ?"abcde"="abc"

屏幕顯示結(jié)果為:.F.

在命令窗口輸入:?"AB"$"XABY"

屏幕顯示結(jié)果為:.T.

3.邏輯表達(dá)式

邏輯表達(dá)式由邏輯運(yùn)算符和邏輯常量、變量、函數(shù)及關(guān)系表達(dá)式組成,其結(jié)果仍是邏輯值。

邏輯運(yùn)算符按其運(yùn)算優(yōu)先級有NOT或!(非)、AND(與)、OR(或)。

①使用.NOT.運(yùn)算的表達(dá)式為假,則邏輯表達(dá)式的值為真。

②使用.AND.連接的兩個表達(dá)式的值同時為真,則其值為真,其余都為假。

③使用.OR.連接的兩個表達(dá)式的值,只要有一個為真,其值就為真。

【例8】邏輯表達(dá)式比較。

在命令窗口輸入:?NOT(70 >124)

屏幕顯示結(jié)果為: .T.

在命令窗口輸入:?not(70<124)and(40<50)

屏幕顯示結(jié)果為:.T.

在命令窗口輸入:?not(70<124)or(40=50)

屏幕顯示結(jié)果為: .T .

4.運(yùn)算符優(yōu)先級

不同類型的運(yùn)算符有可能出現(xiàn)在同一個表達(dá)式中。運(yùn)算過程中,括號的優(yōu)先級最高,其余各類運(yùn)算符的優(yōu)先級別由高到低依次為:

①數(shù)值運(yùn)算(其中%運(yùn)算與/、*同級別)、字符串運(yùn)算和日期運(yùn)算。

②關(guān)系運(yùn)算。

③邏輯運(yùn)算。

主站蜘蛛池模板: 台东县| 灌云县| 敦化市| 仪征市| 湟中县| 阳新县| 永嘉县| 拜泉县| 新干县| 内黄县| 安福县| 隆德县| 广州市| 长治县| 阿勒泰市| 西盟| 葫芦岛市| 柏乡县| 图木舒克市| 佛冈县| 游戏| 沽源县| 峨眉山市| 石家庄市| 鲁甸县| 通渭县| 嵊州市| 达州市| 台南市| 佛教| 定远县| 南皮县| 大姚县| 临沂市| 彰化市| 望江县| 南江县| 中卫市| 漳浦县| 彭山县| 松桃|