gpt4 book ai didi

delphi - 将两个或多个条件组合在一个 if 语句中

转载 作者:行者123 更新时间:2023-12-03 14:49:09 24 4
gpt4 key购买 nike

我们可以在一个 if 语句中组合两个或多个条件吗?我知道在 C# 中我们可以在 IF 语句中组合两个或多个条件。我们可以在 Delphi 中实现吗?

我必须检查用户是否为表单中的三个编辑控件输入了值。感谢大家的帮助

最佳答案

条件语句的一般形式是:

IF "逻辑表达式"THEN ...ELSE ...

“逻辑表达式”是任何 bool 表达式。 bool 表达式是可以计算为 TRUE 或 FALSE 的表达式。

可以使用比较运算符 bool 运算符构建 bool 表达式。

比较运算符:

=   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

bool 运算符:

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 ...

请注意,可以使用 bool 运算符从更简单的逻辑表达式构造逻辑表达式,例如:

IF ( A = 10 ) AND ( A >= B ) THEN ...
IF NOT ( ( A = 10 ) AND ( A >= B ) ) THEN ...

编写逻辑表达式时的常见错误是不注意运算符优先级(哪个运算符首先计算)。 bool 运算符的优先级高于比较运算符,例如:

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提供一个很好的验证机制。

关于delphi - 将两个或多个条件组合在一个 if 语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11217003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com