有条件地执行语句块
DO CASE
CASE <lCondition>
<Statements>...
[CASE <lCondition>]
<Statements>...
[OTHERWISE]
<Statements>...
END[CASE]
<lCondition> | 如果该表达式求值为 TRUE,则执行其后面的语句,直到下一个 CASE、OTHERWISE 或 ENDCASE。之后,控制权分支到下一个 ENDCASE 语句之后的语句。 |
OTHERWISE | 如果前面所有 CASE 条件的值都为 FALSE,则执行 OTHERWISE 之后的语句,直到下一个 ENDCASE。之后,控制分支到下一个 ENDCASE 语句之后的语句。 |
DO CASE 的工作方式是分支到第一个求值为 TRUE 的 CASE <lCondition> 之后的语句。如果所有 CASE 条件的结果都是 FALSE,则分支到 OTHERWISE 语句(如果指定)后面的语句。
执行一直进行到遇到下一个 CASE、OTHERWISE 或 ENDCASE,然后控制分支到下一个 ENDCASE 语句后的第一个语句。
控制结构可以嵌套到任意深度。唯一的要求是每个控制结构都必须正确嵌套。
注意:DO CASE...ENDCASE 与 IF...ELSEIF...ENDIF 相同,两种语法在性能上都没有优势。
此示例在菜单结构中使用 DO CASE,根据用户的选择进行控制分支:
FUNCTION ActonChoice(nChoice as LONG) AS VOID
DO CASE
CASE nChoice = 0
RETURN
CASE nChoice = 1
ChoiceOne()
CASE nChoice = 2
ChoiceTwo()
ENDCASE
BEGIN SEQUENCE, DO WHILE, FOR, FOREACH IF SWITCH