跳轉到內容

Delphi 程式設計/流程控制

來自華夏公益教科書,自由的教科書

if 結構

[編輯 | 編輯原始碼]

如果布林表示式返回 True,則 if 結構將執行命令塊。更易於理解的解釋是:如果條件為真,它將執行一個塊或單個命令。示例

 begin
   if a = False then
     WriteLn('a is false')
   else WriteLn('a is true');
 end.

不要寫 "if a = True",只需寫 "if a"。寫 "if a = False" 是正確的,但你也可以寫 "if not a" 或(帶括號)"if (((((a)))))"(或你想要的任意數量的括號),還有 "(if (not(a)))"。

結構

 begin
   if CONDITION then
     DO_ANYTHING
   else DO_THIS;
 end.

或(用於執行多個命令)

 begin
   if CONDITION then
   begin
     DO_ANYTHING;
   end
   else begin
     DO_THIS;
   end;
 end.

或不帶 else

 begin
   if CONDITION then
   begin
     DO_THIS;
   end;
 end.

除了最後一個 end 之外,end 後面總是有分號。else 前面永遠不會有分號!

示例

 var
   _Answer: string;
 begin
   WriteLn('Do you want to order a pizza?');
   ReadLn(_Answer);
   if _Answer = 'Yes' then
     WriteLn('You decided for yes!')
   else WriteLn('Don''t want to have a pizza?');
 end.

你可以用單引號 (') 或雙引號 (") 開始和結束字串。如何在字串中寫單引號或雙引號?它將在中間結束字串!如果你必須在文字中寫單引號,你可以用雙引號開始和結束字串,或者像第 8 行那樣將單引號寫兩次。對雙引號做同樣的事情。

case 結構

[編輯 | 編輯原始碼]

Case 結構與 if 結構非常相似,但有以下區別:你可以更輕鬆地詢問多個 case!

結構

 case VARIABLE_NAME of
   VALUE_1:
     DO_THIS;
   VALUE_N:
     DO_THIS
   else
     DO_THIS
   end;
 end;

但使用 case 結構,你只能詢問整數和字元。

運算子

[編輯 | 編輯原始碼]

擴充套件條件

[編輯 | 編輯原始碼]

你可以使用幾個運算子擴充套件你的條件

  • AND(如 C 中的 &&):邏輯 'and':if (a = 1) and (b = 2)。表示式 "(a = 1) and (b = 2)" 的值為 TRUE,如果 a 為 1 且 b 為 2。否則,值為 FALSE,並將執行 ELSE 部分(而不是 THEN 後的部分)。不要忘記括號!
  • OR(如 C 中的 ||):'or':if (a = 1) or (b = 1)。如果 a 為 1,b 為 1 或兩者都為 1,則表示式的值為 TRUE。
  • XOR:如果只有一個條件為真:if (a = 1) xor (b = 2)。如果 a 為 1 或 b 為 2,則表示式為真。如果 a 為 1 且 b 為 2,則值為 **FALSE**!
  • NOT:表示式的反義。

也可以將這些運算子相互關聯。但不要忘記括號!

順便說一下:每個條件都會返回一個布林值。如果為 TRUE,則執行 then 部分。如果不是,則處理器轉到 else 部分。

諸如 '等於' 的運算子

[編輯 | 編輯原始碼]

諸如 '=' 的運算子是

  • = 等於
  • > 大於
  • < 小於
  • <= 小於等於
  • >= 大於等於
  • <> 不等於(小於或大於,不相同)

and 連線或 disjunction xor 排他性 disjunction

用於計算的運算子

[編輯 | 編輯原始碼]
  • 你可以使用 ( 和 ) 作為括號。
  • / 表示 '除以',結果為浮點數
  • div 表示 '除以',結果為四捨五入的整數
  • * 表示 '乘'
  • + 表示 '加'
  • - 表示 '減'

+ 也表示連線字串或字元

  • string + string : string
  • string + char : string
  • char + char : string
  • char + string : string
  • string + number : 錯誤
  • number + string : 錯誤
  • number + number : number
  • number + char : 錯誤
  • char + number : 錯誤

迴圈表示:一個塊將被執行多次。有四種類型的迴圈

 for [var] := [start] to [end] do
 begin
   [execute the following code]
 end;

var 將從 [start] 計數到 [end],並且在每次計數步驟後都會執行程式碼。通常,[var] 被定義為 i、j 或 k,但你也可以選擇counting_var_with_this_name或任何名稱。

For-downto

[編輯 | 編輯原始碼]
 for [var] := [end] downto [start] do
 begin
   [execute the following code]
 end;

var 將從 [end] **向下** 計數到 [start],並且在每次計數步驟後都會執行程式碼。

 while [condition] do
 begin
   [code]
 end;

只要條件為真,程式碼就會被執行。條件是 TRUE 還是 FALSE 將在執行程式碼 **之前** 檢查。

Repeat-until

[編輯 | 編輯原始碼]
 repeat
   [code]
 until [condition];

程式碼將被執行,直到條件為真。條件是 TRUE 還是 FALSE 將在執行程式碼 **之後** 檢查。

設定值

[編輯 | 編輯原始碼]

設定值的運算子是:=

 a := b;

透過執行,a 將獲得 b 的值。

示例

a 等於 1;b 等於 3

執行後

a 等於 3;b 等於 3

而不是

a 等於 1;b 等於 1


注意順序!

華夏公益教科書