在VF中可以使用do case ... endcase分支語句根據(jù)不同的條件執(zhí)行不同的程序組,其語法格式如下:
DO CASE
CASE 邏輯表達式1
程序組1
[CASE 邏輯表達式2
程序組2
...
CASE 邏輯表達式n
程序組n]
[OTHERWISE
程序組0]
ENDCASE
該分支結構的執(zhí)行過程如下:
當程序執(zhí)行到 do case語句時,便檢驗第一個 case 的邏輯表達式(邏輯表達式1)是否為真,如不為真,接著檢驗第二個 case 的邏輯表達式,以此類推直到邏輯表達式n。當檢測到第一個為真的邏輯表達式時,便執(zhí)行跟隨在其后面的程序組,執(zhí)行完后跳過后面所有的 case ,接著執(zhí)行 endcase 后面的語句,也就是說即使后面還有為真的邏輯表達式也不執(zhí)行了。
如果所有 case 后面的邏輯表達式都為假,則執(zhí)行 otherwise 后面的程序組(如果有的話, otherwise 及其程序組是可選的,如果沒有則什么都不做,直接執(zhí)行 endcase 以后的程序)
要注意的事項:
(1)在do case 和 endcase 之間可以有任意多個 case 。
(2)do case 和 endcase 必須配對使用,即有一個 do case 必須有一個 endcase ,否則程序會出錯。
舉例說明:
題目要求:某企業(yè)欲給工人漲工資,其規(guī)則如下:如果工資在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元),因此就會執(zhí)行后面的程序,加30%,并且執(zhí)行完后,就不再執(zhí)行其它的 case 了,這樣就產生了錯誤的結果,所以應按從小到大的順序來排列。
新聞熱點
疑難解答