關于If...then...elseif...else與If陳述句嵌套有人可以舉例說明一下嗎?新手求助
uj5u.com熱心網友回復:
用select case 吧:select case a
case a=1
....
case a=2
...
case a=3
...
case else
...
end select
uj5u.com熱心網友回復:
If...Then...Else 陳述句
根據運算式的值有條件地執行一組陳述句。
語法
If condition Then [statements][Else elsestatements]
或者,可以使用塊形式的語法:
If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements] ...
[Else
[elsestatements]]
End If
If...Then...Else 陳述句的語法具有以下幾個部分:
部分 描述
condition 必要引數。一個或多個具有下面兩種型別的運算式:
數值運算式或字串運算式,其運算結果為 True 或 False。如果 condition 為 Null,則 condition 會視為 False。
TypeOf objectname Is objecttype 形式的運算式。其中的 objectname 是任何物件的參考,而 objecttype 則是任何有效的物件型別。如果 objectname 是 objecttype 所指定的一種物件型別,則運算式為 True,否則為False。
statements 在塊形式中是可選引數;但是在單行形式中,且沒有 Else 子句時,則為必要引數。一潭訓多條以冒號分開的陳述句,它們在 condition 為 True 時執行。
condition-n 可選引數。與 condition 同。
elseifstatements 可選引數。一潭訓多條陳述句,它們在相關的 condition-n 為 True 時執行。
elsestatements 可選引數。一潭訓多條陳述句,它們在前面的 condition 或 condition-n 都不為 True 時執行。
說明
可以使用單行形式(第一種語法)來做短小簡單的測驗。但是,塊形式(第二種語法)則提供了更強的結構化與適應性,并且通常也是比較容易閱讀、維護及除錯的。
注意 在單行形式中,按照 If...Then 判斷的結果也可以執行多條陳述句。所有陳述句必須在同一行上并且以冒號分開,如下面陳述句所示:
If A > 10 Then A = A + 1 : B = B + A : C = C + B
在塊形式中,If 陳述句必須是第一行陳述句。其中的 Else、 ElseIf,和 End If 部分可以只在之前加上行號或行標簽。If 塊必須以一個 End If 陳述句結束。
要決定某個陳述句是否為一個 If 塊,可檢查 Then 關鍵字之后是什么。如果在 Then 同一行之后,還有其它非注釋的內容,則此陳述句就是單行形式的 If 陳述句。
Else 和 ElseIf 子句都是可選的。在 If 塊中,可以放置任意多個 ElseIf 子句,但是都必須在 Else 子句之前。If 塊也可以是嵌套的。
當程式運行到一個 If 塊(第二種語法)時,condition 將被測驗。如果 condition為 True,則在 Then 之后的陳述句會被執行。如果 condition 為 False,則每個 ElseIf 部分的條件式(如果有的話)會依次計算并加以測驗。如果找到某個為 True 的條件時,則其緊接在相關的 Then 之后的陳述句會被執行。如果沒有一個 ElseIf 條件式為 True(或是根本就沒有 ElseIf 子句),則程式會執行 Else 部分的陳述句。而在執行完 Then 或 Else 之后的陳述句后,會從 End If 之后的陳述句繼續執行。
提示 根據單一運算式來執行多種可能的動作時,Select Case 更為有用。不過,TypeOf objectname Is objecttype 子句不能在 Select Case 陳述句中使用。
注意 TypeOf 不能與諸如 Long、Integer 以及其他不是 Object 的固定資料型別一起使用。
If...Then...Else 陳述句示例
本示例示范 If...Then...Else 陳述句的兩種格式:“區塊格式”及“單行格式”,也示范了 If TypeOf...Then...Else 的用法。
Dim Number, Digits, MyString
Number = 53 ' 設定變數初始值。
If Number < 10 Then
Digits = 1
ElseIf Number < 100 Then
' 若判斷結果為 True,則完成下一行陳述句。
Digits = 2
Else
Digits = 3
End If
' 使用“單行格式”語法來設定變數值。
If Digits = 1 Then MyString = "One" Else MyString = "More than one"
利用 If TypeOf 可以判斷傳入程序的控制元件是否為一文本框。
Sub ControlProcessor(MyControl As Control)
If TypeOf MyControl Is CommandButton Then
Debug.Print "You passed in a " & TypeName(MyControl)
ElseIf TypeOf MyControl Is CheckBox Then
Debug.Print "You passed in a " & TypeName(MyControl)
ElseIf TypeOf MyControl Is TextBox Then
Debug.Print "You passed in a " & TypeName(MyControl)
End If
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/99690.html
標籤:控件
下一篇:如何繪圖并保存為PNG檔案?
