- Visual Foxpro 9.0數(shù)據(jù)庫程序設(shè)計教程
- 裴海紅
- 1512字
- 2020-06-19 09:11:08
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)算。
- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- Oracle從入門到精通(第3版)
- Docker技術(shù)入門與實戰(zhàn)(第3版)
- Hands-On Machine Learning with scikit:learn and Scientific Python Toolkits
- 構(gòu)建移動網(wǎng)站與APP:HTML 5移動開發(fā)入門與實戰(zhàn)(跨平臺移動開發(fā)叢書)
- Instant Zepto.js
- 軟件工程
- Python貝葉斯分析(第2版)
- The HTML and CSS Workshop
- 前端HTML+CSS修煉之道(視頻同步+直播)
- Service Mesh實戰(zhàn):基于Linkerd和Kubernetes的微服務(wù)實踐
- 嵌入式Linux C語言程序設(shè)計基礎(chǔ)教程
- MySQL數(shù)據(jù)庫應(yīng)用實戰(zhàn)教程(慕課版)
- Groovy 2 Cookbook
- Three.js權(quán)威指南:在網(wǎng)頁上創(chuàng)建3D圖形和動畫的方法與實踐(原書第4版)