【正文】
⑵ 、語(yǔ)句功能: 當(dāng)條件表達(dá)式的值為 True時(shí),執(zhí)行 Then后面的語(yǔ)句, 否則執(zhí)行該語(yǔ)句的下一條語(yǔ)句。 例如:已知兩個(gè)數(shù) x和 y,比較它們的大小,使得 x大于 y。 15 If…Then…Else 語(yǔ)句 ⑴ 格式: If…Then…Else 語(yǔ)句屬于雙分支結(jié)構(gòu)語(yǔ)句,書(shū)寫(xiě)格式也有兩種:?jiǎn)涡薪Y(jié)構(gòu)和塊結(jié)構(gòu)。 如果 Else 語(yǔ)句組 2 部分存在,形成雙向分支。 在“塊結(jié)構(gòu)”條件語(yǔ)句, If 和 End If 也必須成對(duì)出現(xiàn)。 單行結(jié)構(gòu): If 條件 Then 語(yǔ)句組 1 [ Else 語(yǔ)句組 2] 塊結(jié)構(gòu): If 條件 Then 語(yǔ)句組 1 [ Else 語(yǔ)句組 2] End If 其中:[ Else 語(yǔ)句組 2] 加 [],表示可選部分。如果 Else 語(yǔ)句組 2部分省略,則形成單向分支。 17 ⑵ 、語(yǔ)句功能: 當(dāng)條件成立時(shí),執(zhí)行 Then后面的語(yǔ)句組 1, 否則,執(zhí)行 Else后面的語(yǔ)句組 2。 ⑴格式 : IIf (條件, True部分, False部分 ) ⑵ 功能 : 根據(jù)條件判斷,選擇 True部分或 False部分的值:當(dāng)條件為T(mén)rue時(shí),計(jì)算并返回 True部分的值;當(dāng)條件為 False時(shí),計(jì)算并返回 False部分的值。也可為算術(shù)表達(dá)式,表達(dá)式值為非 0時(shí),按 True進(jìn)行判斷,表達(dá)式值為 0時(shí),按 False進(jìn)行判斷 ? IIf 函數(shù)的引用將產(chǎn)生一個(gè)返回值,其值與 True部分和 False部分的類型一致。 20 例如,求 x, y中大的數(shù),賦值給 Max變量,語(yǔ)句如下: Max=Iif(xy,x,y) 判斷一個(gè)整數(shù)是奇數(shù)還是偶數(shù),語(yǔ)句如下: Print Iif(x mod 2=0,‖ 偶數(shù)” ,‖奇數(shù)” ) 21 多分支語(yǔ)句 雙分支結(jié)構(gòu)只能根據(jù)條件的 True和 False決定處理兩個(gè)分支中的其中一個(gè)。多分支語(yǔ)句有兩種: If…Then…ElseIf 語(yǔ)句 和 Select Case語(yǔ)句 22 If…Then…ElseIf 語(yǔ)句 ( 1)格式 IF 條件 1 Then 語(yǔ)句塊 1 [ ElseIf 條件 2 Then 語(yǔ)句塊 2] … [ ElseIf 條件 n Then 語(yǔ)句塊 n] [ Else 語(yǔ)句塊 n+1] End If 23 ( 2)說(shuō)明 ? 語(yǔ)句塊 1到語(yǔ)句塊 n+1中只有一個(gè)被執(zhí)行,無(wú)論哪個(gè)被執(zhí)行后,流程都會(huì)到 End If后下一條語(yǔ)句去。 ? 當(dāng)多分支中有多個(gè)條件同時(shí)滿足,則只執(zhí)行第一個(gè)與之匹配的語(yǔ)句塊。 ? If 和 End If 必須成對(duì)出現(xiàn)。 Private Sub Form_Click() Dim Score As Integer Score = InputBox(請(qǐng)輸入學(xué)生的百分制分?jǐn)?shù) ) If Score = 90 Then MsgBox 學(xué)生的成績(jī)?yōu)?A等 ElseIf Score = 80 Then MsgBox 學(xué)生的成績(jī)?yōu)?B等 ElseIf Score = 70 Then MsgBox 學(xué)生的成績(jī)?yōu)?C等 ElseIf Score = 60 Then MsgBox 學(xué)生的成績(jī)?yōu)?D等 Else MsgBox 學(xué)生的成績(jī)?yōu)?E等 End If End Sub 26 Select Case語(yǔ)句 Select Case語(yǔ)句(又稱為情況語(yǔ)句)。可以取代If…Then…ElseIf 語(yǔ)句。 如果與所有表達(dá)式列表的“域值”范圍都不匹配,并且 Else 語(yǔ)句塊 n+1 存在,則執(zhí)行語(yǔ)句塊 n+1,然后到 End Case后下一條語(yǔ)句去。 ③ 如果測(cè)試表達(dá)式的值與多個(gè)表達(dá)式列表 i中的“域值”范圍相匹配,則選擇執(zhí)行相匹配的 第一個(gè) Case表達(dá)式列表 i后面的語(yǔ)句塊 ④語(yǔ)句塊 1到語(yǔ)句塊 n+1中只有一個(gè)被執(zhí)行,無(wú)論哪個(gè)被執(zhí)行后,流程都會(huì)到 End Case后下一條語(yǔ)句去。 30 【 例 】 某商店進(jìn)行購(gòu)物打折優(yōu)惠活動(dòng)促銷,根據(jù)每位顧客一次性購(gòu)物的消費(fèi)額給予不同的折扣,具體方法如下: (1)購(gòu)物 1500元以上的九五折優(yōu)惠, (2)購(gòu)物 2022元以上的九折優(yōu)惠, (3) 購(gòu)物 2500元以上的八五折優(yōu)惠, (4) 購(gòu)物 4000元以上的八折優(yōu)惠。 y End Sub 32 也可以用 If…Then…ElseIf 語(yǔ)句實(shí)現(xiàn) : Private Sub Form_Click() Dim x As Single, y As Single x = InputBox(請(qǐng)輸入購(gòu)物金額: ) If x 0 Then Print 輸入的的金額有誤 ElseIf x 1500 Then Print 不優(yōu)惠 y = x ElseIf x 2022 Then Print 九五折優(yōu)惠 y = * x ElseIf x 2500 Then Print 九折優(yōu)惠 y = * x ElseIf x 4000 Then 33 Print 八五折優(yōu)惠 y = * x Else Print 八折優(yōu)惠 y = * x End If Print 優(yōu)惠后應(yīng)收款額為: 。If語(yǔ)句的多分支格式實(shí)際上是一種 If結(jié)構(gòu)的嵌套形式。 即可以在 If結(jié)構(gòu)中又包含 If語(yǔ)句,或在 Select結(jié)構(gòu)語(yǔ)句中包含 If語(yǔ)句等形式。 語(yǔ)句如下: If x0 Then y=1 Else If x0 Then y=1 Else 35 y