您在此處:[程式編輯器] 快速入門 > 使用迴圈來重複一組指令

使用迴圈來重複一組指令

若要接連重複相同的一組指令,請使用其中一個迴圈結構。有數種迴圈可供使用。每一種都提供不同的方式,依照條件檢定的結果來離開迴圈。

迴圈與迴圈相關的指令位於 [程式編輯器] 的 [控制][傳輸] 功能表。

當您插入其中一個迴圈結構,會將其範本插入游標的位置。您接著可以開始輸入將在迴圈內執行的指令。

For...EndFor 迴圈

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...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...EndLoop 會建立一個無限迴圈,無止盡地重複下去。Loop 指令沒有任何引數。

一般而言,您會在迴圈中插入讓程式離開迴圈的指令。下列為一般常用的指令:If, ExitGotoLbl (標籤)。例如:

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...EndWhileLoop...EndLoop 搭配使用。

LblGoto 迴圈

雖然嚴格來說 Lbl(標籤)和 Goto 指令不算迴圈指令,但仍可以用它們來建立無限迴圈。例如:

與使用 Loop...EndLoop 時相同,迴圈應包含可讓函數或程式離開迴圈的指令。

 

© 2006 - 2016 Texas Instruments Incorporated