3.4 Visual FoxPro的表达式

2020-03-05


3.4 Visual FoxPro的表达式

一、认识

·表达式即运算对象(常量、变量、函数)通过运算符号进行运算的式子。

·不同的运算符号有不同的优先级,运算时,优先级高的运算符号先算,优先级低的运算符号后算,同等优先级的自左至右进行运算。如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、说明

一个逻辑表达式,它的运算对象往往是关系表达式,而关系表达式的运算对象又往往是数值表达式、字符表达式或日期时间表达式。也就是说,不同类型的运算符可能会出现在同一个表达式中,这时,运算符的优先顺序是:先进行数值运算、字符运算和日期时间运算,然后进行关系运算,最后进行逻辑运算。



分享