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

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)將用字段名代替變量。這種方法稱為間接引用。

主站蜘蛛池模板: 巴楚县| 根河市| 大埔区| 满洲里市| 诸城市| 游戏| 漯河市| 曲沃县| 大理市| 奈曼旗| 永州市| 丰台区| 文登市| 涞水县| 荔波县| 图们市| 沙田区| 蒙阴县| 科技| 乌拉特中旗| 普定县| 两当县| 太原市| 金湖县| 玉山县| 准格尔旗| 乌拉特前旗| 温泉县| 永寿县| 甘泉县| 衡阳市| 新巴尔虎右旗| 天水市| 天峻县| 都江堰市| 汉源县| 高安市| 河北区| 壤塘县| 上高县| 申扎县|