首页 > 课堂 > 技术开发 > 正文

VF中do case...endcase分支语句的使用

2023-06-13 12:11:04
字体:
来源:转载
供稿:网友

在VF中可以使用do case ... endcase分支语句根据不同的条件执行不同的程序组,其语法格式如下:

DO CASE
   CASE 逻辑表达式1
     程序组1
   [CASE 逻辑表达式2
     程序组2
   ...
   CASE 逻辑表达式n
     程序组n]
   [OTHERWISE
     程序组0]
ENDCASE

该分支结构的执行过程如下:

当程序执行到 do case语句时,便检验第一个 case 的逻辑表达式(逻辑表达式1)是否为真,如不为真,接着检验第二个 case 的逻辑表达式,以此类推直到逻辑表达式n。当检测到第一个为真的逻辑表达式时,便执行跟随在其后面的程序组,执行完后跳过后面所有的 case ,接着执行 endcase 后面的语句,也就是说即使后面还有为真的逻辑表达式也不执行了。

如果所有 case 后面的逻辑表达式都为假,则执行 otherwise 后面的程序组(如果有的话, otherwise 及其程序组是可选的,如果没有则什么都不做,直接执行 endcase 以后的程序)

要注意的事项:

(1)在do case 和 endcase 之间可以有任意多个 case 。

(2)do case 和 endcase 必须配对使用,即有一个 do case 必须有一个 endcase ,否则程序会出错。

举例说明:

题目要求:某企业欲给工人涨工资,其规则如下:如果工资在200元以下,增加50%;300元以下,增加30%;500元以下,增加20%;其它增加10%。

编写程序如下:

do case
   case 工资<=200
       replace 工资 with 工资*1.5
   case 工资<=300
       replace 工资 with 工资*1.3
   case 工资<=500
       replace 工资 with 工资*1.2
   otherwise
       replace 工资 with 工资*1.1
endcase

在这里要注意一个问题,不能把300元的 case 放在200元之前,否则一个100元的,按理应加50%,但当遇到小于300元的 case 时,其逻辑表达式为真(小于200元的肯定小于300元),因此就会执行后面的程序,加30%,并且执行完后,就不再执行其它的 case 了,这样就产生了错误的结果,所以应按从小到大的顺序来排列。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表