在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
说明:本文整理于网络。
新闻热点
疑难解答