定义不同的表达式类型
表达式是一个公式,用于指定如何生成所需值,然后求出值。 表达式使用项和运算符(可为一元或二元)。
如果使用一元运算符,运算符会影响紧随其后的项。 二元运算符会对运算符的任何一边都产生影响。
您可以使用以下运算符类型之一对运算符进行分类:
一元
字符串
算术
关系
逻辑
一元运算符
一元运算符仅会影响紧随其后的项。 以下为一元运算符值:
+
-
NOT
使用减号 (-) 时,它会为减号后面的项创建一个负值。 因此,它仅会对跟在运算符后面的项产生影响。
var
CustomerExists: Boolean;
MyBoolean: Boolean;
begin
CustomerExists := true;
MyBoolean := NOT CustomerExists;
// Will result in MyBoolean: false
end;
接下来的运算符都是二元运算符,此类运算符会对运算符任何一边的项都产生影响。
字符串运算符
唯一的字符串运算符是加号 (+),该运算符是二元运算符,因为它会对运算符任何一边的项都产生影响。 字符串运算符将两个字符串串联在一起。
算术运算符
算术运算符用在数值表达式中。 数值表达式是产生数字值的公式。
您可以使用以下算术运算符:
加 (+)
减 (-)
乘 (*)
除 (/)
整除 (DIV)
取模 (MOD)
var
MyExpression: Integer;
begin
MyExpression:= 5 + 2 * 3;
// Will result in MyExpression: 11
end;
根据您在算术运算符中使用的数据类型,您可以获得其他数据类型的结果。
17/8 = 2.125
17/9 = 1.88
除运算符(即除法)是您习惯使用的普通数学除法。 如果您将两个整数值相除,最终都会得到小数值。
整除 (DIV) 运算符会返回整数除法的整数商。 它是二元运算符,会生成整数值。 您可以通过删除结果的所有小数位数来计算整除的结果。
17 DIV 8 = 2 The decimal portion 125 is dropped
17 DIV 9 = 1 The decimal portion 88 is dropped
取模运算符 (MOD) 会求出一个数字除以另一个数字的余数。 在验证银行帐号等数字时,经常使用取模运算符。
5 MOD 2 = 1 5 = (2x2) + 1
17 MOD 9 = 8 17 = (9x1) + 8
如果比较此类运算符,则会出现以下结果:
5 / 2 = 2.5
5 DIV 2 = 2
5 MOD 2 = 1
运算符的应用顺序可能会对计算结果产生显著影响。
最高级别:
一元运算符
第二个级别:
* , / , DIV, MOD
最低级别:
+ , - (二进制)
您可以使用子表达式 () 更改运算符优先级影响。 子表达式始终都会首先求值,您可以通过添加括号 () 来使用该表达式。
5 + 3 * 6 – 2 DIV -2 = ?
First Level:
5 + 3 * 6 – 2 DIV -2
Second Level:
5 + 3 * 6 – 2 DIV -2
= 5 + 18 – (-1)
Lowest Level:
+ and –
23 -(-1) = 24
关系表达式
您可以使用以下关系表达式:
=(等于)
<(小于)
>(大于)
<=(小于或等于)
>=(大于或等于)
<>(不等于)
IN(包括在集中)
关系运算符在所有运算符中具有最低优先级。 使用关系表达式,您可以按小于或大于、等于、小于或大于比较值。 您可以在下列情形中使用关系运算符:
数字比较 - 数字比较的意思直观明了,就是对数字值进行比较。
字符串比较 - 将字符串与 Unicode 日期进行比较,以确定哪个值在先。
日期和时间比较 - 使用日历确定是哪个值在先。
布尔比较 - false 值高于 true 值。
“设置包含”(使用 IN 运算符)是一个值列表,如下例所示:
[2,4,6,8,10]
[1..9,11..19]
IN 运算符会验证某个集中是否包含特定值。
5 IN [2,4,6,8,10] is FALSE
5 IN [1..9,11..19] is TRUE
5 IN [2,4..6,8,10] is TRUE
10 IN [1..9,11..19] is FALSE
'M' IN ['A'..'Z'] is TRUE
逻辑表达式
您可以使用以下逻辑表达式:
AND
OR
XOR
NOT
逻辑运算符也对 true 和 false 值进行求值(结果称为布尔值)。 逻辑运算符不比较常规值(如字符串、数字或日期),而是比较布尔值,关系运算符则根据值的差异比较相应值。
下例显示了不同逻辑运算符之间的比较。
使用 NOT 运算符,将对所有逻辑值求逆。 NOT True 的结果为 False,而 NOT False 的结果为 True。
使用 OR 运算符,其中一个值必须为 True 结果才能为 True;否则,该值为 False。
使用 AND 运算符,两个值都必须为 True 结果才能为 True;否则,值为 False。
使用 XOR (Exclusive OR) 运算符,只能有一个值为 True 结果才能为 True;否则,该值为 False。
下例将所有运算符放在一起。
布尔表达式
在编程或使用应用程序语言时,您还将遇到布尔表达式。 布尔表达式是一种结果为布尔值的表达式,因此,您可以使用布尔变量或常量。 通常,关系表达式和逻辑表达式对布尔值进行求值。