[高等教育]数据类型函数表达式.doc
《[高等教育]数据类型函数表达式.doc》由会员分享,可在线阅读,更多相关《[高等教育]数据类型函数表达式.doc(37页珍藏版)》请在三一办公上搜索。
1、1.5.1 常量与变量1.常量常量是指其值固定不变的数据。VFP的常量有如下6种类型:(1)数值型常量(Numeric,简称N型)数值型常量也就是常数,用来表示一个数量的大小,由数字09、小数点和正负号组成。其表现形式可以是整数(如123)、小数(如0.238)、负数(如-7.69)或科学计数法表示的数(如0.2158E6,即0.2158106)。数值型数据在内存中占8个字节存储空间。(2)字符型常量(Character,简称C型)字符型常量是用定界符括起来的字符串。定界符可以是单引号()、双引号()或方括号( )。例如,Visual FoxPro 6.0、程序设计、关系数据库。在定义和使用字
2、符型常量时必须注意:1)在字符串的两端必须加上定界符,否则系统会把该字符串当成变量名。2)定界符只能是ASCII码字符(即半角字符),不能是全角字符。3)左、右定界符必须匹配。即如果左边是双引号,那么右边也必须是双引号。4)定界符可以嵌套,但同一种定界符不能互相嵌套。也就是说,如果某种定界符本身也是字符串的内容,则需要用另一种定界符为该字符串定界。例如:合法字符串:俗语云:四海之内皆兄弟非法字符串:俗语云:四海之内皆兄弟字符串的最大长度(即最多包含字符个数)是254个字符。例如,Visual FoxPro 6.0的长度是17,关系数据库的长度是10。注意,不包含任何字符的字符串()叫空串,空串
3、与包含空格的字符串( )不同。(3)逻辑型常量(Logical,简称L型)逻辑型常量通常只有2个值,真和假。输入逻辑“真”值,可以用.T.、.t.或.Y.、.y.,输入逻辑“假”值,可以用.F.、.f.或.N.、.n.,但是存储显示时,总是.T.、.t.或.F.、.f.。前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。逻辑型常量只占用1个字节存储空间。(4)货币型常量(Currency,简称Y型)货币型常量用来表示货币值。书写时,以“”符号开头,最多保留位小数。若小数部分超过4位,系统将自动进行四舍五入取前4位,例如,123.456789将存储为123.4568。货币型常
4、量在内存中占用8个字节。(5)日期型常量(Date,简称D型)日期型常量用于表示日期。它的定界符是一对花括号( ),括号内年、月、日之间用分隔符分开。常用的日期分隔符有斜杠(/)、连字符(-)、句点(.)和空格,系统默认斜杠(/)分隔符。日期型常量的格式有两种:1)传统的日期格式系统默认的日期型数据为美国日期格式mm/dd/yy(月/日/年),其中月、日各为2位数字,而年份可以是2位数字,也可以是4位数字。2)严格的日期格式严格的日期格式为yyyymmdd,它能表达一个确切的日期,可以在任何情况下使用,尤其是在输入日期型常量时使用严格的日期格式十分方便。这种日期格式在书写时要注意:花括号内第一
5、个字符必须是脱字符();年份必须是4位;“-”分隔符可以用“/”代替;年、月、日的次序不能颠倒,不能缺省。3)影响日期格式的设置命令本书在介绍命令时,采用如下约定:方括号( )中的内容表示可选项;尖括号()中的内容表示必选项;用竖线()分隔的内容表示任选其一。格式1:SET CENTURY ONOFF说明:用于设置年份的位数:ON 设置年份为4位数字表示;OFF设置年份为2位数字表示。示例:SET CENTURY ON ?2002-06-28 & 结果为 06/28/2002SET CENTURY OFF?2002-06-28 & 结果为 06/28/02其中命令?表示计算并输出表达式的值。“
6、&”表示其后是本命令行的注释。格式2:SET STRICTDATE TO 01说明:用于设置是否对日期格式进行检查: 0表示不进行严格的日期格式检查; 1表示进行严格的日期格式检查,它是系统默认的设置。示例:SET STRICTDATE TO 0 ?05/01/03 & 结果为 05/01/03SET STRICTDATE TO 1?05/01/03 & 结果为 错误提示:不明确的日期常量日期常量用8个字节存储,取值范围是0001-01-019999-12-31。(6)日期时间型常量(Date Time,简称T型)它包括日期和时间两部分,严格的格式为yyyymmdd,hh:mm:ssap。其中
7、hh、mm、ss分别代表小时、分、秒,a和p分别代表上午和下午。例如,2001-10-01,10:10:10 a表示2001年10月1日上午10点10分10秒。日期时间型数据用8个字节存储。2.变量在命令操作或程序执行过程中,其值可以改变的量称为变量。在VFP中,变量可以分为字段变量、内存变量、数组变量和系统变量4类。(1)字段变量字段变量是在数据库中定义的变量,每个字段名就是一个字段变量。字段变量是一种多值变量,它的当前值就是表的当前记录在该字段的取值。字段变量是在建立表的结构时定义的,它必须依附于数据表,随着数据表的打开和关闭而在内存中存储和释放。(2)内存变量内存变量是内存中的临时存储单
8、元,用来保存在命令或程序执行过程中临时用到的输入、输出或中间数据,由用户根据需要定义或删除。1)内存变量的命名 定义内存变量时需要先为其命名。内存变量的命名规则有3条:以字母、汉字或下划线开头;由字母、汉字、下划线或数字组成;长度不超过128个字符。例如,x1、Number_2、姓名等都是合法的内存变量名。2)内存变量的赋值用户定义的内存变量有N、C、L、D、T、Y、S(屏幕型)7种类型,其类型由给它们所赋的值的类型决定。内存变量的赋值命令有两种格式:格式1:=格式2:STORE TO 说明:赋值命令的功能是计算表达式的值并将结果赋给内存变量。两种格式的赋值命令的区别是:“=”命令只能将表达式
9、的值赋给一个内存变量,而STORE命令可以将同一表达式的值赋给多个内存变量(各变量名之间要用逗号分开)。在VFP中,一个内存变量在使用之前可以不事先声明或定义,当用赋值命令给变量赋值时,如果该变量并不存在,那么系统会自动建立它,即内存变量的值及类型在赋值时定义。同一内存变量可以多次被赋值,并以最后一次所赋的值为准。示例: x=1 & 内存变量x为N型,其值为8 name=张华 & 内存变量name为C型,其值为张华 STORE x+2 TO y,z & 计算x+2,并将结果3分别赋给内存变量y,z注意:“=”为赋值号,必须放在赋值号的左边。3)内存变量的输出格式1:?格式2:?说明:格式1的功
10、能是将各变量值换行输出,若没有指定内存变量,则格式只能输出一个回车换行符。格式2的功能是将各变量值在当前行的光标所在处直接输出。示例: ? a,b & 把光标从当前行移至下一行行首,从该处开始显示a和b的值 ? a,b & 从光标的当前位置开始显示a和b的值 ? 2*3,4+5 & 计算2*3、4+5的值,并在下一行行首显示:6 94)内存变量与字段变量的区别字段变量是表结构的一部分,要使用字段变量,必须首先打开包含该字段的表。而内存变量独立于数据库文件而存在,与表无关。内存变量和字段变量可以同名,此时系统将优先存取字段变量。若要明确指定访问内存变量,则应在内存变量名前加前缀M.或M -,以示
11、区别。例如: ? M.姓名 & 显示内存变量姓名的值 (3)数组变量数组是一组有序内存变量的集合,其中每一个内存变量就是一个数组元素。数组元素用数组名及其在数组中排列位置的下标来表示。下标的个数称为数组的维数。可以用小括号“()”或中括号“ ”括住数组下标。例如A(1)表示一维数组A的第1个元素,B(2,5)表示二维数组B的第2行、第5列元素。在VFP中,只使用一维数组和二维数组,数组使用之前必须先定义。1)数组的定义格式:DIMENSIONDECLARE(,),说明:该命令的功能是定义一维数组或二维数组及其下标的上限。下标的下限系统规定一律为1。示例: DIMENSION a(5),b(2,
12、3) & 定义了一维数组a和二维数组b2)数组的赋值数组定义后,系统自动给每个数组元素赋以初值.F.。整个数组的数据类型为A(Array),用赋值命令可以给数组各元素赋同一值,也可以给每个元素赋不同类型的值。例如, a(1)= 刘美 & 给数组元素a(1)赋字符串刘美,表示姓名 a(2)= 20 & 给数组元素a(2)赋数值20,表示年龄 b=1 & 给数组b的6个元素赋相同的数值1一维数组各元素在内存中按其下标的顺序存储。二维数组各元素在内存中按行的顺序存储,使用时也可以用一维数组的形式访问二维数组。例如,二维数组b中的元素b(2,1)排在第2行第1列,由于每行有3个元素,所以该元素也可以用
13、b(4)来表示。(4)系统变量系统变量是VFP系统自己定义的内存变量。系统变量名都由系统定义,而且要以下划线(_)开头。系统变量分别用于控制外部设备(如打印机、鼠标等)、屏幕输出格式及处理有关日历、计算器、剪切板等信息。例如: _DIARYDAT 可存储当前日期 _CLIPTEXT 接受文本并送入剪切板 _PWAIT 确定换页时,打印机是否暂停1.5.2 表达式表达式是由常量、变量和函数通过运算符连接起来的有特定意义的式子。根据表达式中用到的运算符和运算结果的类型的不同,表达式可分为数值型表达式、字符型表达式、日期时间型表达式、关系型表达式和逻辑型表达式5种。下面将分别作以介绍。1.数值型表达
14、式数值型表达式由数值型常量、变量、函数和算术运算符组成,其运算结果仍为数值型。数值型数据可以是数值型常量、变量或函数。算术运算符及其优先级如下表所示:表1-15 算术运算符及其优先级 表1-16 字符运算符及其优先级运算符优先级说明( )1形成表达式内的子表达式*或2乘方运算*、/、%3乘、除运算,求余运算+、-4加、减运算运算符优先级说明+1完全连接,前后两个字符串首尾连接形成一个新的字符串-1压缩连接,连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。示例:?3*6-2 & 显示结果为:16?(1+2(1+2)/(2+2) & 显示结果为:2.25 ?15%4 & 显示结
15、果为:3 ?15%-4 & 显示结果为:-1说明:求余运算也叫取模运算,和取余函数MOD( )的作用相同。余数的正负号与除数相一致。2.字符型表达式字符型表达式由字符型常量、变量、函数和字符运算符组成,其运算结果仍然是字符型数据。字符运算符及其优先级如下所示:示例: ?Visual +FoxPro & 显示结果为:Visual FoxPro ?Visual -FoxPro & 显示结果为:VisualFoxPro ?关系 +数据库系统 & 显示结果为:关系 数据库系统 ?关系 -数据库系统 & 显示结果为:关系数据库系统3.日期时间型表达式日期时间型表达式可由日期时间型常量、变量、函数和日期时
16、间运算符组成。其运算结果是日期时间型或数值型数据。日期时间运算符也有“+”和“-”两个,二者优先级相同。日期时间型表达式的格式有一定限制,不能任意组合,例如,表达式+是没有意义的。合法的日期时间表达式如表1-17所示,其中和都是数值表达式。表1-17 日期时间表达式的格式格式说明结果类型+指定日期若干天后的日期日期型-指定日期若干天后的日期日期型-两个指定日期相差的天数数值型+指定日期时间若干秒后的日期时间日期时间型-指定日期时间若干秒后的日期时间日期时间型-两个指定日期时间相差的秒数数值型示例:?2002-01-02+20 & 显示结果为:01/22/02 ?2002-02-20-2002-
17、01-20 & 显示结果为:31 ?2003-05-18 10:10:10 AM+10 & 显示结果为:05/18/03 10:10:20 AM ?2003-05-18 11:10:10 AM-2003-05-18 10:10:10 AM & 显示结果为:3600符号“+”和“-”既可以作为日期时间运算符,也可以作为算术运算符和字符串连接运算符。到底作为哪种运算符使用,要看它们所连接的运算对象的数据类型而定。4.关系表达式关系表达式由关系运算符和数值表达式、字符表达式和日期时间表达式组成。关系表达式的运算结果为逻辑型数据。关系运算符有8种,具体如下表所示,它们的优先级相同。表1-18 关系运算
18、符运算符说明运算符说明小于大于=大于等于=等于=字符串精确比较、#、!=不等于$子串包含测试运算符“=”和“$”仅适用于字符型数据,其他运算符适用于任何类型的数据,但要求前后两个运算对象的数据类型必须一致。(1)数值型和货币型数据比较按数值的大小比较。例如:0-1 $200$150(2)日期或日期时间型数据比较越早的日期或时间越小,越晚的日期或时间越大。例如:2003-06-302003-01-30(3)逻辑型数据比较 .T.F.(4)子串包含测试对于关系表达式$,如果右字符串包含在左字符串中,或者说左字符串是右字符串的一个子串,那么结果为逻辑真(.T.),否则结果为逻辑假(.F.)。 示例:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高等教育 数据类型 函数 表达式

链接地址:https://www.31ppt.com/p-4562995.html