程序员人生 网站导航

VFP基础教程 3.4 表达式和运算符

栏目:FoxPro时间:2013-10-11 21:17:16

    一。表达式:表达式是vfp命令和函数的重要组成部分,是由常量、变量、函数用运算符连接而成的有意义的式子

    二。运算符:

    1.算术运算符:算术运算符用于进行算术运算,连接起来的表达式称为算术表达式,结果是一个数值。如下表:

运算符
功能
+,-
正负号
**,^
*,/,%
乘,除,取余
+,-
加,减

    优先级从高到低为:**,^→*,/,%→+,-
    例:将(55+9×5)÷2写成vfp算术表达式。

    我们在命令窗口输入并执行下列:
    ?(55+9*5)/2 &&结果可以口算,是50

    2.字符运算符:用于字符串连接运算,结果是一个新的字符串,如下表:

运算符
功能
+
将+号前后字符串连接起来组成一个新的字符串
-
删除-号前面字符串的尾部空格后再与右侧的字符串组成新的字符串


    例:在命令窗口输入执行以下:
    a="abc   " &&abc后面有两个空格
    b="def   " &&def后面有两个空格
    c="ghi"
    ?a+b+c &&完全连接,下行是运行结果
    abc   def   ghi
    x=a-b-c

    ?x &&下行是结果
    abcdefghi

Visual FoxPro基础教程完整版 

    3.日期运算符:用于进行日期运算,如下表:

运算符
功能
+
日期+天数得到新日期
时间+秒数得到新时间
-
日期-日期得到间隔天数
时间-时间得到间隔秒数

    日期运行符无优先级
    例1:计算香港回归距现在多少天。
    ?date()-{^1997.10.01} &&date()函数用于取得当前日期。

    例2:计算距今天1000天的日期。
    ?date()+1000

    4.关系运算符:用于进行关系运算,结果是逻辑值,如下表:

运算符
功能
<
小于
>
大于
=
等于
<>,#,!=
不等于
<=
小于等于
>=
大于等于
==
字符串全等比较

    例:输入并执行下列命令:
    a=1234 &&定义数值常量
    b=2345 &&定义数值常量
    ?a<b &&数值比较
    .t. &&关系成立取真值
    ?a>b &&数值比较
    .F. &&关系不成立,取假值
    x="a" &&定义字符常量
    y="b" &&定义字符常量
    ?x>y &&比较a和b字符的ASCⅡ码
    .f. &&a和b的ASCⅡ码分别是97和98,关系不成立取逻辑假值
    ?"bc"$"abcd" &&比较$左边的字符串是否是其右边的字符串的子串
    .T. &&是其子串,取逻辑真值
    ?"ac"$"abcd" &&比较$左边的字符串是否是其右边的字符串的子串
    .F. &&不是其子串,取逻辑假值
    ?"abcd"="abc" &&比较等号右边字符串是否是其左边字符串从首字符起的子串
    .T. &&是其子串,取逻辑真值
    ?"abcd"="bcd" &&比较等号右边字符串是否是其左边字符串从首字符起的子串
    .F. &&不是其子串,取逻辑假值
    ?"abcd"=="abc" &&字符串等长并完全相同比较
    .F. &&不等长取逻辑假值

    5.逻辑运算符:用于作表达式之间的逻辑运算,参加运算的表达式应有逻辑值。运算的结果是逻辑值,如下表:

运算符
功能
.Not.,!
逻辑非
.and.
逻辑与
.or.
逻辑或

    逻辑运算符的优先级:逻辑非→逻辑与→逻辑或

    逻辑运算符的意义是:

    A.and.B 只有当A和B都为真时,逻辑运算的结果才为真,否则为假
    A.or.B   A和B中有一个为真,结果却为真
    .Not.A   当A为真值时,结果为假值,当A为假值时,结果为真值。

    例:

    y=.f. &&y的值为逻辑假
    ?.Not.y
    .T. &&对y值取反,结果为真
    a=3
    b=9
    ?a<b
    .T.
    ?a<b.andNot.y
    .T. &&两边都为真,结果为真

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐