在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 了,这样就产生了错误的结果,所以应按从小到大的顺序来排列。
新闻热点
疑难解答