D O C A S E ...E N D C A S E 命 令

D O C A S E ...E N D C A S E 命 令 - 图1根据不同的条件表达式结果执行不同的命令

语 法

DO CASE

CASE lExpression1 Commands

[CASE lExpression2

Commands

...

CASE lExpressionN Command s ]

[OTHERWISE

Command s ] ENDCASE

参 数 描 述

CASE lExpression1 Commands ...

D O C A S E ...E N D C A S E 命 令 - 图2D O C A S E ...E N D C A S E 命 令 - 图3D O C A S E ...E N D C A S E 命 令 - 图4D O C A S E ...E N D C A S E 命 令 - 图5D O C A S E ...E N D C A S E 命 令 - 图6D O C A S E ...E N D C A S E 命 令 - 图7D O C A S E ...E N D C A S E 命 令 - 图8当 遇 到 第 一 个 结 果 为 真 的 CASE 表 达 式 时 就 执 行 它 后 面 的 命 令 集 合命 令 集 合 连 续 执 行 直 到 遇 到 下 一 个 CASE 或 ENDCASE 然 后 就 从ENDCASE 后 面 的 第 一 个 命 令 恢 复 程 序 的 执 行

D O C A S E ...E N D C A S E 命 令 - 图9D O C A S E ...E N D C A S E 命 令 - 图10D O C A S E ...E N D C A S E 命 令 - 图11D O C A S E ...E N D C A S E 命 令 - 图12D O C A S E ...E N D C A S E 命 令 - 图13D O C A S E ...E N D C A S E 命 令 - 图14D O C A S E ...E N D C A S E 命 令 - 图15D O C A S E ...E N D C A S E 命 令 - 图16D O C A S E ...E N D C A S E 命 令 - 图17D O C A S E ...E N D C A S E 命 令 - 图18D O C A S E ...E N D C A S E 命 令 - 图19如果一个 CASE 表达式为 假 (.F.) 就忽略它与下一个 CASE 子句之间的命令集合此命令只能执行一组命令 这些命令是 CASE 表达式计算为 真 (.T.)的第一个命令集合 而其他计算为 真 (.T.) 的 CASE 表达式被忽略

OTHERWISE Commands

  • D O C A S E ...E N D C A S E 命 令 - 图20D O C A S E ...E N D C A S E 命 令 - 图21D O C A S E ...E N D C A S E 命 令 - 图22D O C A S E ...E N D C A S E 命 令 - 图23

    果 所 有 的 CASE 表 达 式 计 算 为 假 (.F.) 就 由 OTHERWISE 确 定 是 否执 行 一 组 额 外 的 命 令

  • D O C A S E ...E N D C A S E 命 令 - 图24D O C A S E ...E N D C A S E 命 令 - 图25D O C A S E ...E N D C A S E 命 令 - 图26

    果 包 含 OTHERWISE 就 执 行 OTHERWISE 后 面 的 命 令 集 执 行 后 跳到 ENDCASE 后 的 第 一 条 命 令 执 行

  • D O C A S E ...E N D C A S E 命 令 - 图27D O C A S E ...E N D C A S E 命 令 - 图28

    果 省 略 了 OTHERWISE 就 跳 到 ENDCASE 后 面 的 第 一 条 命 令 处 执行

说 明

D O C A S E ...E N D C A S E 命 令 - 图29D O C A S E ...E N D C A S E 命 令 - 图30DO CASE 根据逻辑表达式的值执行一组 Visual FoxPro 命令 当执行 DO CASE 时

D O C A S E ...E N D C A S E 命 令 - 图31D O C A S E ...E N D C A S E 命 令 - 图32先计算它后面的逻辑表达式 表达式的值决定了执行哪一组命令集 可在 DO CASE

D O C A S E ...E N D C A S E 命 令 - 图33D O C A S E ...E N D C A S E 命 令 - 图34D O C A S E ...E N D C A S E 命 令 - 图35和 END CASE 之后放置注释 在编译和执行过程中 这些注释被忽略

示 例

D O C A S E ...E N D C A S E 命 令 - 图36D O C A S E ...E N D C A S E 命 令 - 图37D O C A S E ...E N D C A S E 命 令 - 图38D O C A S E ...E N D C A S E 命 令 - 图39D O C A S E ...E N D C A S E 命 令 - 图40本示例中 Visual FoxPro 计算每个 CASE 子句 直到在列表中找到 MONTH 变量将合适的字符串存储到变量 rpt_title 中 并退出 DO CASE 结构

D O C A S E ...E N D C A S E 命 令 - 图41D O C A S E ...E N D C A S E 命 令 - 图42STORE CMONTH(DATE ) TO month && 今天所在的月份

D O C A S E ...E N D C A S E 命 令 - 图43D O C A S E ...E N D C A S E 命 令 - 图44D O C A S E ...E N D C A S E 命 令 - 图45 D O C A S E ...E N D C A S E 命 令 - 图46 && 开始循环

D O C A S E ...E N D C A S E 命 令 - 图47D O C A S E ...E N D C A S E 命 令 - 图48 D O C A S E ...E N D C A S E 命 令 - 图49 INLIST(month,'January','February','March') STORE 'First Quarter Earnings' TO rpt_title

D O C A S E ...E N D C A S E 命 令 - 图50D O C A S E ...E N D C A S E 命 令 - 图51 D O C A S E ...E N D C A S E 命 令 - 图52 INLIST(month,'April','May','June')

STORE 'Second Quarter Earnings' TO rpt_title

D O C A S E ...E N D C A S E 命 令 - 图53D O C A S E ...E N D C A S E 命 令 - 图54 D O C A S E ...E N D C A S E 命 令 - 图55 INLIST(month,'July','August','September') STORE 'Third Quarter Earnings' TO rpt_title

D O C A S E ...E N D C A S E 命 令 - 图56D O C A S E ...E N D C A S E 命 令 - 图57D O C A S E ...E N D C A S E 命 令 - 图58D O C A S E ...E N D C A S E 命 令 - 图59

STORE 'Fourth Quarter Earnings' TO rpt_title D O C A S E ...E N D C A S E 命 令 - 图60 D O C A S E ...E N D C A S E 命 令 - 图61 D O C A S E ...E N D C A S E 命 令 - 图62 D O C A S E ...E N D C A S E 命 令 - 图63 && 结束循环

D O C A S E ...E N D C A S E 命 令 - 图64WAIT WINDOW rpt_title NOWAIT

请 参 阅

DO WHILE...ENDDO 命 令 , EXIT 命 令 , FOR...ENDFOR 命 令 , IF...ENDIF 命 令

D O C A S E ...E N D C A S E 命 令 - 图65IIF D O C A S E ...E N D C A S E 命 令 - 图66 函 数 , SCAN...ENDSCAN 命 令