Delphi 编程/布尔表达式
布尔表达式返回一个布尔值,它可以被直接使用或存储在一个布尔变量中。表达式是在一个运算符 (and, or, xor, <, >...) 上创建的,它需要给定数量的操作数,操作数可以是硬编码的值、变量甚至另一个表达式。布尔表达式可以使用布尔值或数值
program Go_to_the_playground;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
age:integer;
begin
WriteLn ('How old are you?');
ReadLn (age);
Write ('Allowed to play: ');
WriteLn ((3 < age) and (age > 12)); // Display "Allowed to play: True" or "Allowed to play: False"
end.
逻辑运算符允许处理和比较布尔值或二进制数据。如果您不熟悉这个概念,可以了解有关布尔代数的更多信息。
NOT 逻辑运算符在 Delphi 中写为 not
。因此,要获取 Delphi 中值的相反值,我们写
var
x, y: boolean;
begin
x := true;
y := not x; // y = false
end.
AND 逻辑运算符在 Delphi 中写为 and
。它类似于 C 中的 &
。因此,要在 Delphi 中对值进行按位与运算,我们写
var
x, y, z: boolean;
begin
x := true;
y := false;
z := y and x; // z = false
end.
OR 逻辑运算符在 Delphi 中写为 or
。它类似于 C 中的 |
。因此,要在 Delphi 中对值进行或运算,我们写
var
x, y, z: boolean;
begin
x := true;
y := false;
z := y or x; // z = true
end.
XOR 逻辑运算符在 Delphi 中写为 xor
。因此,要在 Delphi 中对值进行异或运算,我们写
var
x, y, z: boolean;
begin
x := true;
y := false;
z := y xor x; // z = true
end.
它们主要用于对数值进行逻辑测试。
Delphi 等号比较符“= 允许验证左边的值是否严格等于右边的值。
它与对 XOR 逻辑运算符进行反转相同(即 NOT XOR)。以下是 (x = y) 运算的 = 比较符真值表
= (NOT XOR) | y = true | y = false |
---|---|---|
x = true | true | false |
x = false | false | true |
Delphi 差分运算符 <> 允许验证左边的值是否严格不同于右边的值
var
x, y: Integer;
isDifferent: boolean;
begin
x := 5;
y := 10;
isDifferent := (x <> y); // isDifferent = true
end.
比较符“<” (严格小于) 允许验证左边的值是否严格小于右边的值。该运算符仅在数值严格小于右边的数值时返回 true。
比较符“<=” (小于) 允许验证左边的值是否小于右边的值。该运算符仅在数值小于右边的数值时返回 true。
比较符“>=” (大于) 允许验证左边的值是否大于右边的值。该运算符仅在数值大于右边的数值时返回 true。
比较符“>” (严格大于) 允许验证左边的值是否严格大于右边的值。该运算符仅在数值严格大于右边的数值时返回 true。
您可以基于布尔表达式而不是变量创建布尔表达式
var
x, y, z: boolean;
areAllEqual: boolean;
begin
x := false;
y := false;
z := true;
areAllEqual := ((x = y) and (x = z) and (y = z)); // areAllEqual = false
end.
基于布尔表达式的布尔表达式将使用嵌套表达式的返回值。嵌套表达式位于括号中。它们首先被评估。换句话说,如果您更改括号,表达式的评估方式将有所不同
var
x, y, z: boolean;
areAllEqual: boolean;
begin
x := false;
y := false;
z := true;
areAllEqual := ((x = y) and ((x = (z and y)) = z)); // areAllEqual = true
end.
因此请注意顺序。