迴圈式程式語言中給乙個共同的元素,它可以用來重複執行某個動作,知道某個特定的條件。
所有迴圈都有以下的元素:
迴圈的開始點是object pascal迴圈語句之一(for、while和repeat),每次迴圈迭代時,主體包含的語句都要執行一次,主體包含任何有效的object pascal**,它可以是單行**,也可以使多行**。若主體包含的是多行**,其**必須用begin和end語句分塊(只有repeat迴圈例外)。迴圈的結束點要麼是關鍵字end(在for迴圈和while迴圈情況下),要麼是關鍵字until(在repeat迴圈情況下)。當乙個迴圈主體是單行**時,就不需要用關鍵字begin和end。
大部分迴圈都是這樣操作的:進入迴圈並檢驗條件,若檢驗結果為false,則執行迴圈主體,當程式執行到迴圈體底部時,它將跳回迴圈頂部,並再一次檢驗條件,如果檢驗結果仍然是false,則重複整個以上過程,若檢驗結果是true,則程式將立刻跳到緊跟在迴圈**塊後面的**行。(這些描述對於repeat迴圈是個例外,它是在迴圈底部檢驗條件,而不是在迴圈頂部。)
caution偶爾很容易把迴圈檢驗條件寫成永遠的false,其結果就會使程式鎖死或者掛起,不停地迴圈,這種情況下只能在windows任務管理器裡面來終止該程序。
tip 在delphi中,可用工具欄中的run按鈕或者按f9來執行乙個程式,若要殺死乙個在ide中執行的程式,可在主選單上選擇run | program reset或者按ctrl + f2。在delphi中可以使用for to/down to do、while…do和repeat…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...