循環式編程語言中給一個共同的元素,它可以用來重複執行某個動作,知道某個特定的條件。
所有循環都有以下的元素:
-
起點
-
主體
-
結束點
-
循環結束的條件
-
輔助的Break和Continue過程
循環的開始點是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三種方式來實現循環控制。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
Caution
使用for方式要注意,循環變量的步長是固定爲1的,不能再循環體中用代碼進行修改。
while的特點就是可以自行控制循環變量的變化,靈活性比for更大。
repeat是從while演化過來的。while首先要判斷條件是否成立再執行,而repeat是首先執行,再判斷條件是否成立。
Note
上面代碼中對於I變量名的使用起源於FORTRAN語言,而這也是for循環的習慣用法。
Continue和Break過程
Continue過程,用來強制程序執行到循環底部並進入一個循環,而跳過Continue後面的所有語句。如果位於try…finally塊中則會先執行finally..end塊再進入下一個循環。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
運行結果依次如下(圖示中0,1,2分別代表循環變量I變化時的顯示結果):
Break過程,用來循環正常結束之前終止循環。如果位於try…finally塊中,則finally…end塊也會得到執行,例如下面代碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
運行結果依次如下(圖示中0,1,2分別代表循環變量I變化時的顯示結果):
Continue和Break只能用在for、while和repeat循環中,如果在循環外部用這兩個過程將會產生編譯器錯誤。
以上代碼均在Delphi7中測試通過。