【文章內(nèi)容簡介】
條件表達式的值為“真”時,則執(zhí)行 Then后面的語句或語句塊;否則不執(zhí)行任何操作。 說明: 語句塊可以是一條或多條語句 。 如果使用格式 1的簡單形式表示 , 則只能是一條語句;或用冒號隔開的多條語句 , 但這些語句必須書寫在一行上 。 If...Then 的單行格式不用 End If 語句 。 Dim x As Integer Private Sub Command1_Click() x = 90 If x 0 Then MsgBox 正數(shù) : Print x=90 End Sub Private Sub Command2_Click() x = 90 If x 0 Then MsgBox 正數(shù) Print x=90 End If End Sub 【 例 33】 任意輸入 3個數(shù),找出其中的最大值。 編寫的窗體單擊事件過程代碼如下: Private Sub Form_Click() Dim a As Single, b As Single, c As Single, max As Single a = InputBox(請輸入第一個數(shù) , 輸入框 ) b = InputBox(請輸入第二個數(shù) , 輸入框 ) c = InputBox(請輸入第三個數(shù) , 輸入框 ) max = a If b max Then max = b If c max Then max = c Print 三個數(shù)中最大的為: amp。 max End Sub 2. If…Then …Else 語句結(jié)構(gòu) (雙分支結(jié)構(gòu)) 格式 1: If 表達式 Then 語句塊 1 Else 語句塊 2 End If 格式 2: If 表達式 Then 語句 1 Else 語句 2 功能: 當(dāng)表達式的值為非 0( True)時 ,執(zhí)行 Then后面的語句塊 1,否則執(zhí)行 Else后面的語句塊 2。 F T 語句 (塊 )1 語句 (塊 )2 表達式 雙分支結(jié)構(gòu) 說明: 塊結(jié)構(gòu)的條件語句可以嵌套 , 即把一個 If … Then … Else 塊放在另一個 If … Then … Else 塊內(nèi) 。 嵌套必須完全嵌套 , 也就是內(nèi)層條件語句必須完全包含在外層條件語句之中 。 【 例 34】 火車站行李費的收費標(biāo)準(zhǔn)是 40kg以內(nèi)( 包括 40kg) /kg, 超過部分為 /kg。 編寫程序 , 根據(jù)輸入的任意重量 , 計算出應(yīng)付的行李費 。 根據(jù)題意計算公式如下: Pay=Weight Weight≤ 40 (Weight40) +40 Weight40 編寫的窗體單擊事件過程代碼如下: Private Sub Form_Click() Dim weight As Single, pay As Single weight = InputBox(請輸入行李重量 , 輸入框 ) If weight 40 Then pay = (weight 40) * + 40 * Else pay = weight * End If Print 行李重量 = amp。 weight Print 所付費用 = amp。 pay End Sub 3. If…Then …Else If 語句(多分支結(jié)構(gòu))結(jié)構(gòu) 語句格式: If 〈 表達式 1 〉 Then 〈 語句塊 1〉 ElseIf 〈 表達式 2〉 Then 〈 語句塊 2〉 … … [Else 〈 語句塊 n+1 ] End If F T T T …… 表達式 1 表達式 2 表達式nn 語句塊 1 語句塊 2 語句塊 nn 語句塊 n+11 F… 圖 多分支結(jié)構(gòu) 說明: ① 不管有幾個分支 , 程序執(zhí)行了一個分支后 , 其余分支不再執(zhí)行 。 ② ElseIf子句的數(shù)量沒有限制 , 可以根據(jù)需要使用任意多個 ElseIf子句 。 例: 【 例 36】 輸入一個學(xué)生的成績 score, 根據(jù)其所在分?jǐn)?shù)段給出他的考試等級 。 分?jǐn)?shù)段劃分規(guī)則是: 90score=100為 “ 優(yōu)秀 ” , 80score=90為“ 良好 ” , 70score=80為 “ 中等 ” , 60=score=70為 “ 及格 ” ,score60為 “ 不及 格 ” , score100為 “ 輸入錯誤 ” 。 Private Sub Form_Click() Dim score As Single score = InputBox(請輸入學(xué)生的成績 score。) If score 60 Then Print 不及格 ElseIf score 70 Then Print 及格 ElseIf score 80 Then Print 中等 ElseIf score 90 Then Print 良好 ElseIf score = 100 Then Print 優(yōu)秀 Else Print 輸入錯誤 End If End Sub 4 . If 語句的嵌套 If 語句的嵌套是指 if或 else語句后面的語句塊中又包含 if語句。 語句形式為: If 表達式 1 then if 表達式 11 then …… endif …… endif 【 例 35】 輸入系數(shù) a, b和 c,求二次方程 ax2+bx+c = 0的實根。 Private Sub Form_Click() Dim a!, b!, c!, d!, x1!, x2!, x a = InputBox(請輸入系數(shù) a:) b = InputBox(請輸入系數(shù) b:) c = InputBox(請輸入系數(shù) c:) d = b * b 4 * a * c If d 0 Then x1 = (b + Sqr(d)) / (2 * a) x2 = (b Sqr(d)) / (2 * a) Print x1=。 x1, x2=。 x2 Else If d = 0 Then x = b / (2 * a): Print x=。 x Else Print 此方程無實根 End If End If End Sub Private Sub Form_Click() Dim score As Single sco