当前位置:洪恩在线 -> 继续教育 -> 计算机考级 -> 二级FOXBASE+语言

  计算机考试


FOXBASE+


  表达式(2)

三、逻辑表达式
     逻辑表达式常用于条件查询,满足条件的逻辑表达式运算结果为真(.T.);不满足条件的结果为假(.F.)。逻辑表达式的结构分为简单逻辑表达式和复合逻辑表达式,下面分别介绍。
    1.简单逻辑表达式
     简单逻辑表达式是指两个表达式之间的比较关系运算,即:
     <表达式1><比较运算符><表达式2>
     1)比较运算符
     比较运算也称为关系运算,其作用是比较两个数据的大小或前后。比较运算只能在数值型数据、字符型数据、日期型数据之间进行。FoxBASE共有8种比较运算符,请参见下表。

运算符 说明 运算符

说明

= 等于 <>或# 不等于
> 大于 < 小于
>= 大于或等于 <= 小于或等于
== 字符串精确比较 $ 子字符串比较

     其中,$子字符串比较,是判断前一个字符串是否包含在后一个字符串中。当前面的字符串是后面的子字符串时,字符串比较运算的结果为真(.T.);否则结果为假(.F.)。

     使用比较运算符时,应该注意以下几点:

     (1)两个相比较的表达式数据类型必须相同,可以同是数值型、字符型或日期型表达式。逻辑型数据不能比较。

     (2)数值型数据按照其数值的大小进行比较。字符型数据按照其机内码顺序比较,对于西文字符是ASCII码的值,对于汉字是汉字国标码的值。常用的一级汉字是按照拼音顺序排列的,即字典顺序。日期型数据按照年、月、日的先后进行比较。

     2)字符串比较方式

     字符串比较有前缀匹配、精确匹配和部分匹配三种情况。当比较两个字符串时,系统对两个字符串自左向右逐个字符比较,一旦可以判定结果便终止比较。判断结果与使用的比较运算符有关,也与系统的设置状态有关,这里介绍一个设置字符串比较方式的命令。

     命令格式:

     SET EXACT ON|OFF

     此命令是设置精确匹配与否的开关,系统默认OFF状态。此时,用“=”对字符串进行比较时,比较到等号右面的字符串结束即终止。如果匹配,则结果为真。也就是说,只要右面的字符串是左面字符串的前缀即可。这是前缀匹配的比较方式,也称为不精确比较。

     如果执行过命令SET EXACT ON,则打开了精确匹配的开关。在此状态下,用“=”对字符串进行比较时,只有当两边的字符串完全相同时,比较结果才为真值;否则为假。

     无论精确匹配开关是否打开,使用两个等号的字符串精确比较运算符“==”都表示要求精确匹配。

     所谓部分匹配是指只要一个字符串包含了另一个字符串,比较结果就是逻辑真。被包含的字符串称为子字符串;在查询中应用部分匹配方式,常称为模糊查询。前缀匹配属于部分匹配的一个特例,但它不能包括子字符串在中间或在后面的情况。这时需要使用“$”运算符。

    当前面的字符串是后面的子字符串时,字符串比较运算的结果为真;否则结果为假。

     3)变量的赋值与比较的区别

     内存变量的赋值命令和相等比较运算都是等号,必须注意两者之间的区别。

     内存变量的赋值命令:<内存变量>=<表达式>

     赋值命令的左面只能是一个内存变量名,用等号右面的表达式对其赋值。赋值命令执行之前,内存变量的值或类型一般都不等于表达式,否则就不必要赋值了。在多数情况下,被赋值的内存变量原来并不存在,命令执行后才被定义。赋值命令执行后,内存变量的值与类型是表达式的值与类型。

     相等比较运算是在两个表达式之间进行的,即<表达式1>=<表达式2>。右面的表达式可以是一个内存变量。表达式不是命令,不能直接写在圆点提示符后面。要显示表达式的值,常用数据的无格式输出命令,即?<表达式表>。

     逻辑表达式既然也是一个表达式,它的值也可以赋给一个内存变量。明确以上三方面的概念,就容易区别开等号的作用了。

    2.复合逻辑表达式

    符合逻辑表达式是使用逻辑运算符把一个、两个或多个逻辑表示组合起来,进行逻辑运算,所的结果仍为逻辑值。复合逻辑表达式的表示形式为:

    <逻辑表达式1><逻辑运算符><逻辑表达式2>[<逻辑运算符><逻辑表达式>....]

    1)逻辑运算符

    复合逻辑表达式常用于组成复杂的复合条件。

    2)运算的规则

     当表达式中多种运算符同时出现时,括号的优先级最高,其余各种运算的优先顺序从高到低为:函数、算术或字符运算、比较关系运算、逻辑运算。同一类运算符的运算次序按照该类运算符的规定执行,同一种运算符中相同优先级的运算从左至右顺序执行。其实,这种规则与人们的习惯完全相符,是自然规则,不必想象得太复杂。

    四、日期表达式

    1.日期型数据之间的算术运算

    FoxBASE允许以下两种日期运算:

    (1)<日期1>-<日期2>

    两个日期型数据相减,得到相差的天数,表达时的结果为数值。

    (2)<日期>或-<数值表达式>

    一个日期加上数值表达式的值结果等于若干天以后的日期;一个日期减去数值表达式的值结果等于若干天以前的日期。表达式的结果仍为日期型数据。

    2.日期型数据的比较

    两个日期型数据之间可以比较大小,按照年、月、日计算日期的先后。叫做的日期小,较晚的日期大,比较的结果为逻辑值。

课堂提问:
问题

 


简单举例
例子
基础测试
测试