在VF中可以使用循環語句(do while...enddo)來反復執行一段代碼,直到滿足某個條件退出而執行循環后面的語句。
其語法格式為:
DO WHILE lExpression
Commands
[LOOP]
[EXIT]
ENDDO
上述語法中lExpression 為一邏輯表達式,其值如果是“真”,即執行commands程序語句序列,如果表達的值為“假”,則跳過該段程序組,執行enddo后面的語句。
Commands 當表達式 lExpression 值為真時所要執行的程序語句序列,即可以是由多個VF語句構成的序列。
LOOP 此為 do while...enddo 命令的一個子句,它可以放在 commands 程序組中間的任何地方,當程序一旦執行到該子句時,則返回 do while 重新執行。此子句根據需要可以有,也可以沒有。
EXIT 與loop一樣是 do while...enddo 命令的一個子句,它可以放在 commands 程序組中間的任何地方,當程序一旦執行到該子句時,則跳出循環,執行enddo后面的語句。此子句根據需要可以有,也可以沒有。
程序一旦執行到do while 語句,如果 lExpression 的值為真,則執行 commands 程序組,該程序組執行完后,就到enddo語句,enddo會將程序返回 do while 再次驗證 lExpression 是否為真,如仍是,則又一次執行 commands ,如此循環往復,直到 lExpression 為假,或遇上 exit 語句。
該語句可以嵌套,即循環中還可以有循環。
do while 與 enddo 必須配對使用,即有一個 do while 必須有一個 enddo 否則程序會出錯。
下面給出三個具體的例子來說明do while...enddo語句的具體使用方法。
第一個例子:在數據庫中不斷將記錄指針往下移,直到數據庫結尾。程序如下:
do while .not. eof()
skip
enddo
第二個例子:在上面的例子加入此功能,當遇到性別字段為“女”時,跳出循環。程序如下:
do while .not. eof()
if 性別='女'
exit
endif
skip
enddo
第三個例子:不斷將記錄指針往下移,當遇到數量字段的值大于等于600時退出循環,如遇到值小于400的,將其值乘2,然后再檢驗一次是否大于600,如是則退出循環。程序如下:
do while 數量<600
if 數量<400
replace 數量 with 數量*2
loop
endif
skip
enddo
說明:本文整理于網絡。
新聞熱點
疑難解答