条件语句的一般形式是:
IF "逻辑表达式" THEN ...ELSE ...
“逻辑表达式” 是任何布尔表达式。布尔表达式是可以评估为 TRUE 或 FALSE 的表达式。
可以使用比较运算符和布尔运算符来构造布尔表达式。
比较运算符:
= equals
<> not equals
> greater than
>= greater than or equals
< less than
<= less than or equals
设置比较运算符:
= equals
<= returns true, if set1 is a subset of set2
>= returns true, if set1 is a superset of set2
in returns true, if an element is in the set
布尔运算符:
AND logical and
OR logical or
NOT logical not
XOR logical exclusive disjucntion
例子:
IF A = 10 THEN ...
IF A >= B THEN ...
IF C or D THEN ... (Note: C and D have to be logical, i.e. TRUE or FALSE)
IF NOT E THEN ... (Note: E has to be logical, i.e. TRUE or FALSE)
C、D、E可以替换为任意逻辑表达式,例如:
IF (edit1.text = '') OR ( ISEMPTY( edit2.text ) ) THEN ...
IF NOT checkbox1.checked THEN ...
请注意,可以使用布尔运算符从更简单的逻辑表达式构造逻辑表达式,例如:
IF ( A = 10 ) AND ( A >= B ) THEN ...
IF NOT ( ( A = 10 ) AND ( A >= B ) ) THEN ...
编写逻辑表达式的常见错误是不注意运算符优先级(哪个运算符首先计算)。布尔运算符的优先级高于比较运算符,例如:
IF A = 10 OR A >= B THEN ...
上面是错误的,因为Delphi试图评估
10 OR A 首先,而不是
A = 10。如果 A 本身不是逻辑表达式,则会发生错误。
解决方法是使用括号,所以上面的IF...THEN...应该写成:
IF (A = 10) OR (A >= B) THEN ...
对于检查3个编辑控件,条件语句变为:
IF ( Edit1.text <> '' ) AND ( Edit2.text <> '' ) AND ( Edit3.text <> '' ) THEN ...
注意:稍微偏离主题,但相关。来自Jedi JVCL project 的免费组件 TJvValidators、TJvValidationSummary 和 TJvErrorIndicator 提供了一个很好的验证机制。