D O C A S E ...E N D C A S E 命 令
根据不同的条件表达式结果执行不同的命令
语 法
DO CASE
CASE lExpression1 Commands
[CASE lExpression2
Commands
...
CASE lExpressionN Command s ]
[OTHERWISE
Command s ] ENDCASE
参 数 描 述
CASE lExpression1 Commands ...
当 遇 到 第 一 个 结 果 为 真 的 CASE 表 达 式 时 就 执 行 它 后 面 的 命 令 集 合命 令 集 合 连 续 执 行 直 到 遇 到 下 一 个 CASE 或 ENDCASE 然 后 就 从ENDCASE 后 面 的 第 一 个 命 令 恢 复 程 序 的 执 行
如果一个 CASE 表达式为 假 (.F.) 就忽略它与下一个 CASE 子句之间的命令集合此命令只能执行一组命令 这些命令是 CASE 表达式计算为 真 (.T.)的第一个命令集合 而其他计算为 真 (.T.) 的 CASE 表达式被忽略
OTHERWISE Commands
-
如
果 所 有 的 CASE 表 达 式 计 算 为 假 (.F.) 就 由 OTHERWISE 确 定 是 否执 行 一 组 额 外 的 命 令
-
如
果 包 含 OTHERWISE 就 执 行 OTHERWISE 后 面 的 命 令 集 执 行 后 跳到 ENDCASE 后 的 第 一 条 命 令 执 行
-
如
果 省 略 了 OTHERWISE 就 跳 到 ENDCASE 后 面 的 第 一 条 命 令 处 执行
说 明
DO CASE 根据逻辑表达式的值执行一组 Visual FoxPro 命令 当执行 DO CASE 时
先计算它后面的逻辑表达式 表达式的值决定了执行哪一组命令集 可在 DO CASE
和 END CASE 之后放置注释 在编译和执行过程中 这些注释被忽略
示 例
本示例中 Visual FoxPro 计算每个 CASE 子句 直到在列表中找到 MONTH 变量将合适的字符串存储到变量 rpt_title 中 并退出 DO CASE 结构
STORE CMONTH(DATE ) TO month && 今天所在的月份
&& 开始循环
INLIST(month,'January','February','March') STORE 'First Quarter Earnings' TO rpt_title
INLIST(month,'April','May','June')
STORE 'Second Quarter Earnings' TO rpt_title
INLIST(month,'July','August','September') STORE 'Third Quarter Earnings' TO rpt_title
STORE 'Fourth Quarter Earnings' TO rpt_title && 结束循环
WAIT WINDOW rpt_title NOWAIT
请 参 阅
DO WHILE...ENDDO 命 令 , EXIT 命 令 , FOR...ENDFOR 命 令 , IF...ENDIF 命 令
IIF 函 数 , SCAN...ENDSCAN 命 令