程式流程的控制之迴圈(Delphi)

2021-09-09 04:40:31 字數 3520 閱讀 9871

迴圈式程式語言中給乙個共同的元素,它可以用來重複執行某個動作,知道某個特定的條件。

所有迴圈都有以下的元素:

迴圈的開始點是object pascal迴圈語句之一(forwhilerepeat),每次迴圈迭代時,主體包含的語句都要執行一次,主體包含任何有效的object pascal**,它可以是單行**,也可以使多行**。若主體包含的是多行**,其**必須用beginend語句分塊(只有repeat迴圈例外)。迴圈的結束點要麼是關鍵字end(在for迴圈和while迴圈情況下),要麼是關鍵字until(在repeat迴圈情況下)。當乙個迴圈主體是單行**時,就不需要用關鍵字beginend

大部分迴圈都是這樣操作的:進入迴圈並檢驗條件,若檢驗結果為false,則執行迴圈主體,當程式執行到迴圈體底部時,它將跳回迴圈頂部,並再一次檢驗條件,如果檢驗結果仍然是false,則重複整個以上過程,若檢驗結果是true,則程式將立刻跳到緊跟在迴圈**塊後面的**行。(這些描述對於repeat迴圈是個例外,它是在迴圈底部檢驗條件,而不是在迴圈頂部。)

caution偶爾很容易把迴圈檢驗條件寫成永遠的false,其結果就會使程式鎖死或者掛起,不停地迴圈,這種情況下只能在windows任務管理器裡面來終止該程序。

tip

在delphi中,可用工具欄中的run按鈕或者按f9來執行乙個程式,若要殺死乙個在ide中執行的程式,可在主選單上選擇run | program reset或者按ctrl + f2

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

var

i: integer;

x: integer;

begin

x := 10;

for i := 0 to 9 do

begin

end;

for i := 0 to pred(x) do

begin

end;

for i := 9 downto 0 do

begin

end;

x := 8;

for i := succ(x) downto 0 do

begin

end;

i := 0;

while i <= 10 do

begin

showmessage(inttostr(i));

inc(i);

end;

i := 0;

repeat

showmessage(inttostr(i));

inc(i);

until i = 10;

i := 0;

inc(i);

inc(i, 2);

dec(i, 2);

dec(i);

showmessage(inttostr(i));

end;

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

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

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

note上面**中對於i變數名的使用起源於fortran語言,而這也是for迴圈的習慣用法。

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

var

i:integer;

begin

for i := 0 to 2 do

begin

tryif i < 1 then

continue;

showmessage(inttostr(i));

finally

showmessage('finally..end');

end;

end;

end;

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

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

var

i:integer;

begin

for i := 0 to 2 do

begin

tryif i > 1 then

break;

showmessage(inttostr(i));

finally

showmessage('finally..end');

end;

end;

end;

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

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

以上**均在delphi7中測試通過。

流程控制之for迴圈

流程控制之for迴圈 用while來獲取列表的迴圈 names egon asb wsb lsb csb n 0while n len names len names 取names這個列表的長度 print names n 先獲得列表的索引,再用names n 來獲得對應的值。n 1 每獲得乙個索引...

流程控制之for迴圈

案例1 字串 for i in python print 當前字母 i 案例2 列表 案例3 字典 案例4 通過索引 內建函式 len 和 range 函式 len 返回列表的長度,即元素的個數。range返回乙個序列的數。案例5 for else 表示這樣的意思,for 中的語句和普通的沒有區別,...

程式流程控制 迴圈結構

今天學習了關於迴圈結構的內容,如何實現乙個迴圈,我覺得我們至少需要三個條件 迴圈起始條件,迴圈終止條件,迴圈次數控制 這三個就是我們能否實現我們想要的迴圈 的關鍵,當我們控制其中的乙個或多個條件時,就可以控制整個迴圈。迴圈結構我們有三種結構 for迴圈,while,do.while for迴圈和wh...