一、认识
·表达式即运算对象(常量、变量、函数)通过运算符号进行运算的式子。
·不同的运算符号有不同的优先级,运算时,优先级高的运算符号先算,优先级低的运算符号后算,同等优先级的自左至右进行运算。如10+30-20/5。
·为了让优先级低的运算符先算,应使用圆括号。注意:只能使用圆括号。
·表达式中的所有符号应并列书写,不能像数学中那样书写。
·单个运算对象,也认为是表达式(表达式特例)。
二、数值表达式
1、认识
对数值型、货币型数据进行运算的式子,其值为数值型或货币型。
2、运算符及优先级
**或^:乘方运算;
*:乘法运算;
/:除运算;
%:求余运算;
+:加运算;
-:减运算。
例:试写出下列算式的VFP表达式。
三、字符表达式
1、认识
对字符型数据进行运算的式子,其结果仍为字符型。
2、运算符及优先级
+:将前后两个字符串进行合并,如"abc "+"def",其结果为字符串"abc def"。
-:将前后两个字符串进行合并,但将前面字符串尾部的空格挪到合并后的字符串尾部。如"abc "-"def",其结果为字符串"abcdef "。
四、日期时间表达式
1、认识
有日期时间型数据参加运算的式子,其结果类型依情况而定。
2、表达式实例
·日期+数值 或 数值+日期
·日期-数值
注意:不能数值-日期
·日期-日期
·日期时间+数值 或 数值+日期时间
·日期时间-数值
注意:不能数值-日期时间
·日期时间-日期时间
五、关系表达式
1、认识
对类型一致的数据进行比较的式子,如A<B,2+3>56,'春节'>'圣诞节'等。
如果比较成立,结果为逻辑值真,否则为假。
2、比较符号
·比较符号又叫关系运算符。
·关系运算符:(见关系运算符)
思考:关系表达式“1 < 2 < 3”的值是什么?
3、VFP中数据大小的规定
除使用$(属于)关系运算符的关系表达式外,关系表达式的运算结果和关系运算符两边数据的大小密切相关,因此,必须清楚VFP中关于数据大小的规定。
1)数值型、货币型的大小
同算术中大小。
2)日期型、日期时间型的大小
靠后的日期、时间大。
3)逻辑型的大小
真大于假。
4)字符型的大小
·单个字符大小的规定
当设置为Machine(机器)顺序时
字符大小:空格<数字字符(’0’到’9’)<大写字母<小写字母;
汉字大小:常用汉字以拼音顺序排大小,如’李’小于’张’。
当设置为PinYin(拼音)顺序时
字符大小:空格<数字字符(’0’到’9’) <’a’<’A’<’b’<’B’……;
汉字大小:以拼音顺序排大小,如’李’小于’张’。
当设置为Stroke(笔画)顺序时
字符大小:空格<数字字符(’0’到’9’)<’a’<’A’<’b’<’B’……;
汉字大小:以书写笔画多少确定大小,笔画多的大。
三种顺序的设置
方法一:“选项”对话框中设置。
方法二:用命令设置:
setcollate to "Machine"
setcollate to "PinYin"
setcollate to "Stroke"
·字符串大小的规定
基本规则
自左至右,逐个字符进行比较,直到某个字符能分辨出大小为止。
非精确比较方式(默认方式)
在前面字符没能区分出大小的情况下,两个字符串的比较以右边字符串的结束而结束。
精确比较方式
在前面字符没能区分出大小的情况下,两个字符串的比较以最长字符串的结束而结束。
说明:关系运算符“=”按当前的比较方式进行比较,“==”始终以精确方式进行比较。
比较方式的设置
方法一:“选项”对话框中进行。
方法二:命令
SETEXACT ON &&设置为精确比较方式
SETEXACT OFF &&设置为非精确比较方式
六、逻辑表达式
1、认识
对逻辑型数据进行运算的式子,结果为逻辑型。
2、运算符及优先级
.not.或not或!:非运算;
.and.或and:与运算;
.or.或or:或运算。
思考:逻辑表达式“not .f. or .t. and .f.”的值?
3、逻辑表达式、关系表达式的意义
VFP中,使用关系表达式来表示单个条件,逻辑表达式表示组合条件。组合条件中,如果两个条件要求同时满足,两个条件之间使用“与”运算;如果两个条件只要求满足其中一个,两个条件之间使用“或”运算;如果要表示出某个条件的反条件,对该条件进行“非”运算。
当逻辑表达式、关系表达式的值为真时,所表示的条件成立;当逻辑表达式、关系表达式的值为假时,所表示的条件不成立。
例:试用关系表达式或逻辑表达式表示如下条件。
1)A大于5
2)A不大于5
3)A大于5且B小于10
4)A大于5或B小于10
5)A在5和20之间
6)A不在5和20之间
4、说明
一个逻辑表达式,它的运算对象往往是关系表达式,而关系表达式的运算对象又往往是数值表达式、字符表达式或日期时间表达式。也就是说,不同类型的运算符可能会出现在同一个表达式中,这时,运算符的优先顺序是:先进行数值运算、字符运算和日期时间运算,然后进行关系运算,最后进行逻辑运算。