1. 程式人生 > >delphi if 語句迴圈語句

delphi if 語句迴圈語句

在Delphi中可以使用for to/down to dowhile…dorepeat…until三種方式來實現迴圈控制。

01 var
02 I: Integer;
03 X: Integer;
04 begin
05 X := 10;
06 for I := 0 to 9 do       { I從0遞增變化到9,依次執行10次DoSomething}
07 begin
08 { DoSomething}
09 end;
10
11 for I := 0 to Pred(X) do { Pred(X)返回X的前一個值,即9}
12 begin
13
{ DoSomething}
14 end;
15
16 for I := 9  downto 0 do  { I從9遞減變化到0,依次執行10次DoSomething}
17 begin
18 { DoSomething}
19 end;
20
21 X := 8;                  { I從9遞減到0,迴圈10次}
22 for I := Succ(X) downto 0 do
23 begin                    { Succ函式返回指定值的後一個}
24 { DoSomething}
25 end;
26
27 I := 0;
28 while I <= 10 do  { 和for I := 0 to 10 do的功能是一樣的}
29 begin
30 ShowMessage(IntToStr(I));
31 Inc(I);         { while的特點就是可以自己控制迴圈因子}
32 end;
33
34 I := 0;
35 repeat            { 和while I <= 10 do 功能相同}
36 ShowMessage(IntToStr(I));
37 Inc(I);
38 until I =
10;
39
40 I := 0;   { Inc以指定的值遞增,Dec以指定的值遞減}
41 Inc(I);   { I = 1}
42 Inc(I, 2);{ I = 3}
43 Dec(I, 2);{ I = 1}
44 Dec(I);   { I = 0}
45 ShowMessage(IntToStr(I));
46 end;

Caution

使用for方式要注意,迴圈變數的步長是固定為1的,不能再迴圈體中用程式碼進行修改。

while的特點就是可以自行控制迴圈變數的變化,靈活性比for更大。

repeat是從while演化過來的。while首先要判斷條件是否成立再執行,而repeat是首先執行,再判斷條件是否成立。

Note

上面程式碼中對於I變數名的使用起源於FORTRAN語言,而這也是for迴圈的習慣用法。

Continue和Break過程

Continue過程,用來強制程式執行到迴圈底部並進入一個迴圈,而跳過Continue後面的所有語句。如果位於try…finally塊中則會先執行finally..end塊再進入下一個迴圈。

01 var
02 I:Integer;
03 begin
04 for I := 0 to 2 do
05 begin
06 try
07 if I < 1 then
08 Continue;
09 ShowMessage(IntToStr(I));
10 finally
11 ShowMessage('finally..end');
12 end;
13 end;
14 end;

執行結果依次如下(圖示中0,1,2分別代表迴圈變數I變化時的顯示結果):

0027

Break過程,用來迴圈正常結束之前終止迴圈。如果位於try…finally塊中,則finally…end塊也會得到執行,例如下面程式碼:

01 var
02 I:Integer;
03 begin
04 for I := 0 to 2 do
05 begin
06 try
07 if I > 1 then
08 Break;
09 ShowMessage(IntToStr(I));
10 finally
11 ShowMessage('finally..end');
12 end;
13 end;
14 end;

執行結果依次如下(圖示中0,1,2分別代表迴圈變數I變化時的顯示結果):

0028

Continue和Break只能用在for、while和repeat迴圈中,如果在迴圈外部用這兩個過程將會產生編譯器錯誤。