- Visual FoxPro程序設計教程(第3版)
- 劉瑞新 汪遠征 曹歡歡等
- 1670字
- 2020-05-28 17:19:56
2.3 表達式與運算符
Visual FoxPro表達式是指用運算符將常量、變量、字段、函數按Visual FoxPro的語法規則連接起來的式子。作為特例,單個的常量、變量、字段和函數均為最簡單的表達式。
每個表達式都有確定的值,按照值的數據類型,可以把表達式分為算術表達式、字符串表達式、日期表達式、邏輯表達式、關系表達式和名表達式。
運算符用來處理同種類型的數據。對于Visual FoxPro的數據類型,有如下一些類型的運算符:算術運算符、字符串運算符、日期時間運算符、邏輯運算符和關系運算符。
下面先介紹算術運算符、字符串運算符、日期時間運算符等運算符,邏輯運算符和關系運算符留待第5章介紹。
2.3.1 算術運算符與算術表達式
算術表達式也稱數值型表達式,由算術運算符、數值型常量、變量、函數和圓括號組成,其運算結果為一數值。例如50*2+(70-6)/8的運算結果為108.00。
算術表達式的格式為:

Visual FoxPro提供的算術運算符如表2-3所示。在這6個算術運算符中,除取負“?”是單目運算符外,其他均為雙目運算符。加(+)、減(?)、乘(*)、除(/)、取負(?)、乘方(^或**)運算的含義與數學中的概念基本相同。
表2-3 算術運算符

算術運算符的優先權依次為:()→^或**→*和/→%→+和?。
算術表達式與數學中的表達式寫法有所區別,在書寫表達式時應當特別注意:
①每個符號占1格,所有符號都必須一個一個并排寫在同一橫線上,不能在右上角或右下角寫方次或下標,例如23要寫成2^3、x1+x2要寫成x1+x2。
②原來在數學表達式中省略的內容必須重新寫上,例如2x要寫成2*x。
③所有括號都用小括號(),括號必須配對,例如3[x+2(y+z)]必須寫成3*(x+2*(y+z))。
④要把數學表達式中的有些符號,改成Visual FoxPro中可以表示的符號。例如要把2πr改為2*pi*r。
2.3.2 字符串運算符與字符串表達式
一個字符串表達式由字符串常量、字符串變量、字符串函數和字符串運算符組成。它可以是一個簡單的字符串常量,也可以是若干個字符串常量或字符串變量的組合。字符串表達式的值為字符串。Visual FoxPro提供的字符串運算符有兩個(其運算級別相同),如表2-4所示。
表2-4 字符串運算符

字符串表達式的格式為:

【例2-3】下面是一些字符串表達式的示例。

使用?命令,可以得到表達式的計算結果,如圖2-3所示。
在字符串中嵌入引號,只需將字符串用另一種引號括起來即可。例如:


圖2-3 字符串表達式的連接
2.3.3 日期時間運算符與日期時間表達式
日期型表達式由算術運算符(“+”“-”)、算術表達式、日期型常量、日期型變量和函數組成。日期型數據是一種特殊的數值型數據,它們之間只能進行加“+”、減“-”運算。有下面3種情況。
1.兩個日期型數據相減
兩個日期型數據可以相減,結果是一個數值型數據(兩個日期相差的天數)。例如:

2.日期型數據加數值型數據
一個表示天數的數值型數據可加到日期型數據中,其結果仍然為一日期型數據(向后推算日期)。例如:

3.日期型數據減數值型數據
一個表示天數的數值型數據可從日期型數據中減掉它,其結果仍然為一日期型數據(向前推算日期)。例如:

Visual FoxPro將無效的日期處理成空日期。
2.3.4 類與對象運算符
類與對象運算符專門用于實現面向對象的程序設計。有以下兩種:
①.——點運算符,確定對象與類的關系,以及屬性、事件和方法與其對象的從屬關系。
②::——作用域運算符,用于在子類中調用父類的方法。
2.3.5 名表達式
在Visual FoxPro中,許多命令和函數需要提供一個名。在Visual FoxPro中可使用的名有:
表/.DBF的文件名 表/.DBF的別名 表/.DBF的字段名
索引文件名 文件名 內存變量和數組名
窗口名 菜單名 表單名
對象名 屬性名 ……
在Visual FoxPro中定義一個名時,需要遵循以下原則:
①名中只能以字母(漢字)或下畫線開始。
②名中只能使用字母(漢字)、數字和下畫線字符。
③不能使用Visual FoxPro的保留字。
④名的長度可以為1~128個字符,但自由表中的字段名、索引標記名最多為10個字符。文件名要按操作系統的規定。
名不是變量或字段,但是可以定義一個名表達式,以代替同名的變量或字段的值。名表達式為Visual FoxPro的命令和函數提供了靈活性。將名存放到變量或數組元素中,就可以在命令或函數中用變量來代替該名,只要將存放一個名的變量或數組元素用一對括號括起來。例如:

字段名CITY被存放在變量a中,在執行REPLACE命令時,名表達式(a)將用字段名代替變量。這種方法稱為間接引用。