1、n 5-1 forn 5-2 while與 repeatn 5-3 goton 5-4 with第五章 迴圈敘述n 人類的生活有許多事都是具有重複性的,例如一天有24小時、一星期有七天、同一門課要上 18次才能拿到學分。程式設計的目的是要解決日常生活中可預期的事件,為了解決其重複性, Delphi的迴圈敘述如下:1. for2. while、 repeat3. goto4. Withn for的使用時機為程式設計階段已知執行次數,請看 5-1節。若未知執行次數,則應使用 while或 repeat, 請看5-2節。 goto則為非結構化語言的遺留產物,原則上它應已走入歷史,很多人建議應將 go
2、to敘述從結構化語言移除,但又擔心有些程式無法適應,所以目前 goto敘述還是繼續存在,請看 5-3節。 with的功能為同時設定同一記錄的多個欄位、或是同一物件的多個屬性與方法,請看 5-4節。5-1 for n 若於程式設計階段已知要執行的次數,則可使用 for敘述,Delphi的 for敘述語法如下:for變數 := 計數初值 計數終值 dobegin敘述區塊 1 ;break ;continue ;敘述區塊 2 ;end ;以上語法說明如下:n 1. for敘述的計數變數必須是序數變數,且又分為遞增計數與遞減計數。遞增計數時,採用 to; 遞減計數時,則使用 downto。n 2. 程
3、式若執行到 break, 則會提早離開 for迴圈。n 3. 程式若執行到 continue, 則會略過 continue下面的敘述區塊 2,繼續執行下一個計數變量,請看範例 5-1c。for forbegin begin 敘述區塊 1; 敘述區塊 1;break; continue;敘述區塊 2; 敘述區塊 2;end; end;n 4.以下程式片段可統計 1至 10的和。sum:=0for i:=1 to 10 do sum:=sum+i;n 5.敘述區塊內可以放置任何合法的敘述,當然也可含有 for。 for內再含有 for稱為巢狀迴圈,請看範例 5-1e。乘法n 若沒有乘法運算子,則應
4、如何計算乘法呢?答案是可用累加的方式來計算。例如 62 x 38, 亦就是 62連續相加 38次的結果,請看以下程式說明。範例 5-1an 請用 for迴圈完成乘法運算。 自我練習 n 1.請寫一程式,可以輸出任一指定數字的九九乘法。 範例 5-1bn 試求 2.1+1.9+1.7+(-7.1) 之和。程式說明 :n 1. Canvas是一個無圖示的物件,所以元件盤上並沒有Canvas元件的圖示,若要使用 Canvas物件,直接在程式中鍵入物件名稱 “Canvas”即可。 Canvas的功能是輸出字串與繪圖,詳細說明請看第十三章的繪圖。n 2. TextOut是輸出字串的程序,語法如下,其中 x、 y是顯示字串的座標位置。Text (x,y,字串 )n 3. Delphi的計數變數只可以為序數型態,所以計數變數不可為小數。範例 5-1cn 示範 break及 continue敘述。質數的判斷n 一個整數除了 1及本身外,若無任何數可以整除它,則稱此數為質數。欲判別輸入的整數 N是否為質數,最直接的方法就是將 N連續使用 2至 N-1去除,若均無法整除,則 N即為質數。像這種重複某一項工作,且有明確的起始值及終值的演算法,最適合使用 for迴圈。