Do...Loop
在符合條件時或符合條件前(不符合時),在DO...LOOP之間重複執行。
格式
Do [ { While | Until } 條件運算式 ]
[陳述式]
[Exit Do]
[陳述式]
Loop
或使用如下格式。
Do
[陳述式]
[ Exit Do ]
[陳述式]
Loop [ { While | Until }條件運算式]
Do Loop陳述式分為條件運算式和陳述式兩種。
- 條件運算式
- 是用於表示True或False的數字或字串運算式。條件運算式為空(Null)時,條件則作為False進行處理。可省略。
- 陳述式
- 是在符合條件時或符合條件前重複執行之1個以上的陳述式
說明
作為離開Do...Loop的另一個方法,可在Do...Loop中的任何部分插入任何數量的Exit Do陳述式。Exit Do常被用於評估數個條件(If...Then等)之後的情況。按If...Then使用Exit Do陳述式時,則將控制轉移到Loop的下一個陳述式中。
若在巢狀Do...Loop陳述式中使用,Exit Do則用於將控制轉移到發生該情況的迴圈之上1級迴圈。
注意
使用時,請勿在Loop陳述式中頻繁重複XQT命令
使用時,請勿在Do…Loop等Loop陳述式中頻繁重複XQT命令。否則,控制器有可能進入意外停機狀態。若要這樣使用,請新增Wait命令(Wait 0.1)。
盡可能將空無限循環和無限迴圈處理與等待命令結合使用
盡量不要進行空的Do...Loop或類似操作,因為它們可能會影響您的系統。控制器檢測無限循環任務,並確定系統受到影響,則可能會出現錯誤 2556(檢測到過多的迴圈)。執行需要迴圈的演算或等待I/O時,請在迴圈中執行Wait命令(Wait 0.1)等,以避免佔用CPU。
如果不使用Exit Do並從嵌套結構退出迴圈
若重複執行Exit Do以外的命令(Gosub、Goto、Call 命令等)脫離迴圈的程式會導致錯誤2020。如果要在循環中間退出,請使用Exit Do命令退出它。
參照
For...Next、Select...Send
Do...Loop範例
Do While Not Lof(1)
Line Input #1, tLine$
Print tLine$
Loop