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.
因此請注意順序。