若要接連重複相同的一組指令,請使用其中一個迴圈結構。有數種迴圈可供使用。每一種都提供不同的方式,依照條件檢定的結果來離開迴圈。
迴圈與迴圈相關的指令位於 [程式編輯器] 的 [控制] 和 [傳輸] 功能表。
當您插入其中一個迴圈結構,會將其範本插入游標的位置。您接著可以開始輸入將在迴圈內執行的指令。
For...EndFor 迴圈會使用計數器來控制迴圈重複的次數。下列為 For 指令的語法:
附註: 如果增減的值為負數,則結束的值可少於開始的值。
| For | variable, | begin, | end [, | increment] |
|
|
À | Á | Â | Ã |
|
À |
Variable 用來作為計數器 |
|
Á |
第一次執行 For 時要使用的計數器值 |
|
 |
當 variable 超過此值則離開迴圈 |
|
à |
每次連續執行 For 時會新增到計數器(如果省略此非必要的值,則 increment 為 1。) |
執行 For 時,會將 variable 值與 end 值進行比較。如果 variable 沒有超過 end,則會執行迴圈;否則,控制會跳到接在 EndFor 之後的指令。
附註: For 指令會自動增減計數器變數,讓函數或程式可以在特定的重複次數後離開迴圈。
在迴圈的結尾處(EndFor),控制會跳回至 For 指令,其中系統會增減變數並與 end 進行比較。
例如:
|
For i,0,5,1 Disp i À EndFor Disp i Á |
|
À |
顯示 0、1、2、3、4 和 5。 |
|
Á |
顯示 6。當 variable 增減至 6 時,便不會執行迴圈。 |
附註: 如果您不需要在函數或程式停止後儲存計數器變數,可以將它宣告為區域性變數。
While...EndWhile 迴圈會重複一個區段的指令,直到指定的條件為「是」。下列為 While 指令的語法:
While condition
執行 While 時,會計算 condition。如果 condition 為「是」,則會執行迴圈;否則,控制會跳到接在 EndWhile 之後的指令。
附註: While 指令不會自動更改條件。您必須包括允許函數或程式離開迴圈的指令。
在迴圈的結尾處(EndWhile),控制會跳回至 While 指令,其中條件會經過重新計算。
要首次執行迴圈,條件一開始必須為「是」。
| • | 條件中所參照的任何變數必須設定在 While 指令之前。(您可以將值建置到函數或程式中,或可以提示使用者輸入值。) |
| • | 迴圈必須包含在條件中更改值的指令,最終讓條件成為「非」。否則,條件會一律為「是」,而函數和程式則無法離開迴圈(稱為無限迴圈)。 |
例如:
|
0&x À While x<5 Disp x Á x+1&x  EndWhile Disp x à |
|
À |
初次設定 x。 |
|
Á |
顯示 0、1、2、3 和 4。 |
|
 |
增減 x。 |
|
à |
顯示 5。當 x 增減至 5 時,便不會執行迴圈。 |
Loop...EndLoop 會建立一個無限迴圈,無止盡地重複下去。Loop 指令沒有任何引數。
一般而言,您會在迴圈中插入讓程式離開迴圈的指令。下列為一般常用的指令:If, Exit、Goto 和 Lbl (標籤)。例如:
|
0&x Loop Disp x x+1&x If x>5 À Exit EndLoop Disp x Á |
|
À |
If 指令會檢查條件。 |
|
Á |
x 增減到 6 時,則離開迴圈並跳到此處。 |
附註: Exit 指令從目前的迴圈離開。
在此範例中,If 指令可位於迴圈中的任何位置。
|
當 If 指令: |
迴圈為: |
|
在迴圈開頭 |
僅在條件為「是」時執行。 |
|
在迴圈結尾 |
執行至少一次並僅在條件為「是」時重複。 |
If 也可以使用 Goto 指令將程式控制傳輸給指定的 Lbl(標籤)指令。
Cycle 指令會立即將程式控制傳輸給迴圈的下一個迭代(在完成目前的迭代前)。此指令與 For...EndFor°BWhile...EndWhile 和 Loop...EndLoop 搭配使用。
雖然嚴格來說 Lbl(標籤)和 Goto 指令不算迴圈指令,但仍可以用它們來建立無限迴圈。例如:
與使用 Loop...EndLoop 時相同,迴圈應包含可讓函數或程式離開迴圈的指令。