跳轉到內容

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”

[編輯 | 編輯原始碼]

NOT 邏輯運算子在 Delphi 中寫為 not。因此,要獲取 Delphi 中值的相反值,我們寫

var
  x, y: boolean;
begin
  x := true;
  y := not x; // y = false
end.

運算子“and”

[編輯 | 編輯原始碼]

AND 邏輯運算子在 Delphi 中寫為 and。它類似於 C 中的 &。因此,要在 Delphi 中對值進行按位與運算,我們寫

var
  x, y, z: boolean;
begin
  x := true;
  y := false;
  z := y and x; // z = false
end.

運算子“or”

[編輯 | 編輯原始碼]

OR 邏輯運算子在 Delphi 中寫為 or。它類似於 C 中的 |。因此,要在 Delphi 中對值進行或運算,我們寫

var
  x, y, z: boolean;
begin
  x := true;
  y := false;
  z := y or x; // z = true
end.

運算子“xor” (對稱差,或排他)

[編輯 | 編輯原始碼]

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.

因此請注意順序。

華夏公益教科書