Delphi 程式設計/流程控制
如果布林表示式返回 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 結構與 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 [var] := [end] downto [start] do
begin
[execute the following code]
end;
var 將從 [end] **向下** 計數到 [start],並且在每次計數步驟後都會執行程式碼。
while [condition] do
begin
[code]
end;
只要條件為真,程式碼就會被執行。條件是 TRUE 還是 FALSE 將在執行程式碼 **之前** 檢查。
repeat
[code]
until [condition];
程式碼將被執行,直到條件為真。條件是 TRUE 還是 FALSE 將在執行程式碼 **之後** 檢查。
設定值的運算子是:=
a := b;
透過執行,a 將獲得 b 的值。
示例
a 等於 1;b 等於 3
執行後
a 等於 3;b 等於 3
而不是
a 等於 1;b 等於 1
注意順序!