2.2.5内存变量和数组的作用域1、全局变量定义为全局变量(PUBLIC)的内存变量和数组在全部程序、过程、自定义函数以及它调用的程序、过程和自定义函数中都有效。即使整个程序结束,全局内存变量和数组也不被释放。定义全局变量的命令:PUBLIC<内存变量名表>全局变量的释放命令:RELEASE、CLEARALL或CLEARMEMORY2、私有变量定义为私有变量(PRIVATE)的内存变量和数组可以在定义它的程序以及被该程序调用的子程序中有效。一旦定义它的程序运行完毕,私有内存变量和数组将从内存中释放。定义私有变量的命令:PRIVATE<内存变量名表>3、本地变量定义为本地变量(LOCAL)的内存变量和数组只在定义它的程序内有效,不能在上层或下层模块中使用。一旦定义它的程序运行结束,本地内存变量和数组将从内存释放。定义本地变量的命令:LOCAL<内存变量名表》2.3表达式表达式是VisualFoxPro命令的重要组成部分,它是由运算符将常量、变量和函数等运算对象连接起来的有意义的式子。在VisualFoxPro中,表达式分为以下5种。1、数值表达式数值型表达式是使用算术运算符将数值型常量、变量和函数连接起来的式子,参加运算的项目均为数值型,运算结果也为数值型。算术运算符及表达式实例见表2-1。表2-1算术运算符及表达式实例一览表运算符功能表达式表达式的值2°38**、乘幂16*、/乘、除36/9*4%526%7模运算(取余)5加、减2+8-5+、-算术运算符的优先级从高到低为:()(括号),一(负号),**或(乘幂),*、/、%(乘、除、取模),+、一(加、减)2、字符表达式使用字符运算符将字符型项目连接起来的算式称为字符型表达式,其运算结果也为字符型。字符运算符及实例见表2-2。表2-2字符运算符及表达式实例一览表运算符功能表达式表达式的值将两个字符串首尾连接组成+"Visual FoxPro"+"6.0"VisualFoxPro6.0一新字符串将前一个字符串尾部空格移到后一个字符串尾部,再将其"Visual"-"FoxPro"+"6.0"VisualFoxPro6.0首尾连接最成一新字符串.T.比较,查看前一个字符串是否"Fox"s"Visual FoxPro6.0"s.F.被包含在后一个字符串中"铜陵学院"$安徽铜陵市
2.2.5 内存变量和数组的作用域 1、全局变量 定义为全局变量(PUBLIC)的内存变量和数组在全部程序、过程、自定义函数以及它调 用的程序、过程和自定义函数中都有效。即使整个程序结束,全局内存变量和数组也不被释 放。 定义全局变量的命令:PUBLIC <内存变量名表> 全局变量的释放命令:RELEASE、CLEAR ALL 或 CLEAR MEMORY 2、私有变量 定义为私有变量(PRIVATE)的内存变量和数组可以在定义它的程序以及被该程序调用 的子程序中有效。一旦定义它的程序运行完毕,私有内存变量和数组将从内存中释放。 定义私有变量的命令:PRIVATE <内存变量名表> 3、本地变量 定义为本地变量(LOCAL)的内存变量和数组只在定义它的程序内有效,不能在上层或 下层模块中使用。一旦定义它的程序运行结束,本地内存变量和数组将从内存释放。 定义本地变量的命令:LOCAL <内存变量名表> 2.3 表达式 表达式是 Visual FoxPro 命令的重要组成部分,它是由运算符将常量、变量和函数等运 算对象连接起来的有意义的式子。在 Visual FoxPro 中,表达式分为以下 5 种。 1、数值表达式 数值型表达式是使用算术运算符将数值型常量、变量和函数连接起来的式子,参加运算 的项目均为数值型,运算结果也为数值型。 算术运算符及表达式实例见表 2-1。 表 2-1 算术运算符及表达式实例一览表 运算符 功能 表达式 表达式的值 **、^ 乘幂 2^3 8 *、/ 乘、除 36/9*4 16 % 模运算(取余) 26%7 5 +、- 加、减 2+8-5 5 算术运算符的优先级从高到低为:()(括号),-(负号),**或^(乘幂),*、/、%(乘、 除、取模),+、-(加、减) 2、字符表达式 使用字符运算符将字符型项目连接起来的算式称为字符型表达式,其运算结果也为字符 型。字符运算符及实例见表 2-2。 表 2-2 字符运算符及表达式实例一览表 运算符 功能 表达式 表达式的值 + 将两个字符串首尾连接组成 一新字符串 ”Visual FoxPro”+”6.0” Visual FoxPro6.0 - 将前一个字符串尾部空格移 到后一个字符串尾部,再将其 首尾连接最成一新字符串 ”Visual ”-”FoxPro” +”6.0” VisualFoxPro 6.0 $ 比较,查看前一个字符串是否 被包含在后一个字符串中 ”Fox”$”Visual FoxPro6.0” ”铜陵学院”$”安徽铜陵市” .T. .F
字符运算符无优先级,表达式按从左向右的方向计算。3、日期时间表达式日期时间表达式是使用算术运算符将日期型和日期时间型数据、数值型数据连接起来的算式,返回值为日期型、日期时间型或数值型使用形式有:①、《日期>土<天数>,得到一新的日期型数据:②、《日期时间>土<秒数》,得到一新的日期时间型数据;③、《日期>-<日期>,得到一数值型数据,两个指定日期相差的天数:4、<日期时间>一<日期时间>,得到一数值型数据,两个指定日期时间相差的秒数。日期时间运算符及表达式实例见表2-3。表2-3日期时间运算符及表达式实例一览表运算符功能表达式表达式的值得到一新的日期型、日期{1995/10/12)+610/18/95+时间型数据{~1995/10/129:8:1)+610/18/9509:08:07AM得到一新的日期型、日期(1995/10/18)-610/12/956时间型数据或数值型数据(1995/10/18)-(1995/10/12)日期时间运算符无优先级,表达式按从左向右的方向计算。4、关系表达式关系表达式由关系运算符将两个数据对象连接起来进行比较运算,关系表达式中运算符两边的数据类型必须一致,返回值为逻辑型。关系运算符及表达式实例见表2-4。表2-4关系运算符及表达式实例一览表功能表达式运算符表达式的值<5<3.F.小于>大于5>3.T.等于.F.=2*5=25.T.<>, #, !=不等于5<>9<=.T.小于或等于4*5<=20>=.T大于或等于4*5>=20==.F.字符串等于"Fox"=="FoxPro"关系运算符无优先级,表达式按从左向右的方向计算。逻辑表达式5、逻辑型表达式是由逻辑运算符将逻辑型数据连接起来的式子,返回值为逻辑型。逻辑运算符及表达式实例见表2-5。表3-5逻辑运算符及表达式实例一览表功能表达式运算符表达式的值.F..NOT.逻辑非.NOT. 5>3.T.. AND.逻辑与5>3. AND. 6>5.T..OR.逻辑或5>3. OR. 6<5逻辑运算符的优先级从高到低为:括号、.NOT.、.AND.、.OR.。注意:不同类型的运算符有可能出现在同一个表达式中,各种运算的优先级顺序从高到低为:先执行算术运算符、字符运算符和日期运算符,其次执行关系运算符,最后执行逻辑运算符
字符运算符无优先级,表达式按从左向右的方向计算。 3、日期时间表达式 日期时间表达式是使用算术运算符将日期型和日期时间型数据、数值型数据连接起来的 算式,返回值为日期型、日期时间型或数值型。 使用形式有: ➀、<日期>±<天数>,得到一新的日期型数据; ➁、<日期时间>±<秒数>,得到一新的日期时间型数据; ➂、<日期>-<日期>,得到一数值型数据,两个指定日期相差的天数; ➃、<日期时间>-<日期时间>,得到一数值型数据,两个指定日期时间相差的秒数。 日期时间运算符及表达式实例见表 2-3。 表 2-3 日期时间运算符及表达式实例一览表 运算符 功能 表达式 表达式的值 + 得到一新的日期型、日期 时间型数据 {^1995/10/12}+6 {^1995/10/12 9:8:1}+6 10/18/95 10/18/95 09:08:07 AM - 得到一新的日期型、日期 时间型数据或数值型数据 {^1995/10/18}-6 {^1995/10/18}-{^1995/10/12} 10/12/95 6 日期时间运算符无优先级,表达式按从左向右的方向计算。 4、关系表达式 关系表达式由关系运算符将两个数据对象连接起来进行比较运算,关系表达式中运算符 两边的数据类型必须一致,返回值为逻辑型。 关系运算符及表达式实例见表 2-4。 表 2-4 关系运算符及表达式实例一览表 运算符 功能 表达式 表达式的值 < 小于 5<3 .F. > 大于 5>3 .T. = 等于 2*5=25 .F. <>,#,!= 不等于 5<>9 .T. <= 小于或等于 4*5<=20 .T. >=. 大于或等于 4*5>=20 .T == 字符串等于 ”Fox”==”FoxPro” .F. 关系运算符无优先级,表达式按从左向右的方向计算。 5、 逻辑表达式 逻辑型表达式是由逻辑运算符将逻辑型数据连接起来的式子,返回值为逻辑型。 逻辑运算符及表达式实例见表 2-5。 表 3-5 逻辑运算符及表达式实例一览表 运算符 功能 表达式 表达式的值 .NOT. 逻辑非 .NOT.5>3 .F. .AND. 逻辑与 5>3.AND.6>5 .T. .OR. 逻辑或 5 >3.OR.6<5 .T. 逻辑运算符的优先级从高到低为:括号、.NOT.、.AND.、.OR.。 注意:不同类型的运算符有可能出现在同一个表达式中,各种运算的优先级顺序从高到 低为:先执行算术运算符、字符运算符和日期运算符,其次执行关系运算符,最后执行逻辑 运算符