D O W H ILE...ENDDO 命 令
在一个条件循环里执行一组命令
语 法
DO WHILE lExpression Commands
[LOOP]
[EXIT] E N D D O
参 数 描 述
lExpression
指 定 一 个 逻 辑 表 达 式 它 的 值 决 定 是 否 执 行 DO WHILE 和 E N D D O 之 间 的命 令 集 如 果 lExpression 计 算 为 真 ( .T .) 就 执 行 命 令 集
Commands
指 定 当 lExpression 计 算 为 真 (.T.) 时 要 执 行 的 V isual FoxPro 命 令 集
LOOP
直 接 将 程 序 控 制 返 回 到 DO WHILE LOOP 可 放 在 DO WHILE 和 ENDDO
间 的 任 何 位 置
EXIT
将 程 序 控 制 从 DO WHILE 循 环 的 内 部 转 到 E N D D O 后 的 第 一 个 命 令 EXIT
可 放 在 DO WHILE 和 E N D D O 间 的 任 何 位 置
说 明
只要逻辑表达式 lExpression 为 真 (.T.) 就执行位于 DO WHILE 和 ENDDO 间的命令集 每个 DO WHILE 语句必须有一个相应的 ENDDO 语句 可在 DO WHILE 和ENDDO 之后放置注释 在程序编译和执行期间注释被忽略
示 例
下面的示例用 DO WHILE loop 语句对库存中价格超过 20 美元的产品进行汇总 直到遇到文件尾 (EOF) 然后退出 DO WHILE loop 语句 并显示总和
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata') USE products && 打开 Products 表
SET TALK OFF
gnStockTot = 0
IF EOF
EXIT ENDIF
.T. && 开始循环
IF unit_price < 20
SKIP LOOP
ENDIF
gnStockTot = gnStockTot + in_stock SKIP
&& 结束循环
CLEAR
? 'Total items in stock valued over 20 dollars:'
?? gnStockTot
请 参 阅
DO CASE...ENDCASE , FOR...ENDFOR , IF...ENDIF , IIF ,
SCAN...ENDSCAN