If...Then...Else 陳述式 (Visual Basic)
根據運算式的值,有條件的執行陳述式群組。
' Multiple-line syntax:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
組件
condition
必要項。運算式。必須評估為 True 或 False,或評估為可以隱含轉換為 Boolean 的資料型別。如果運算式是評估為 Nothing的 可為 NullBoolean 變數,這種情況,視為運算式不 True,因此, Else 執行區塊。
Then
在單行語法中為必要項,在多行語法中為選擇項。statements
選擇項。接在 If...Then 之後,如果 condition 評估為 True,就會執行的一或多個陳述式。elseifcondition
如果有 ElseIf 則為必要項。運算式。必須評估為 True 或 False,或評估為可以隱含轉換為 Boolean 的資料型別。elseifstatements
選擇項。接在 ElseIf...Then 之後,如果 elseifcondition 評估為 True,就會執行的一或多個陳述式。elsestatements
選擇項。如果先前無 condition 或 elseifcondition 運算式評估為 True,就會執行的一或多個陳述式。End If
結束 If...Then...Else 區塊。
備註
多行語法
當遇到 If...Then...Else 陳述式時,就會測試 condition。如果 condition 為 True,就會執行接在 Then 之後的陳述式。如果 condition 為 False,則會依序評估每個 ElseIf 陳述式 (如果有的話)。發現 elseifcondition 為 True 時,會執行緊接在相關 ElseIf 之後的陳述式。如果沒有 elseifcondition 評估為 True,或是如果沒有 ElseIf 陳述式,就會執行接在 Else 之後的陳述式。執行接在 Then、ElseIf 或 Else 之後的陳述式後,程式碼會繼續執行接在 End If 之後的陳述式。
ElseIf 和 Else 子句都是選擇項。在 If...Then...Else 陳述式中可以有任意數目的 ElseIf 子句,但是任何 ElseIf 子句都不可以出現在 Else 子句之後。If...Then...Else 陳述式可以相互套疊成巢狀。
在多行語法中,If 陳述式必須是第一行唯一的陳述式。ElseIf、Else 和 End If 陳述式的前面只能出現行標籤。If...Then...Else 區塊必須以 End If 陳述式結束。
提示 |
---|
Select...Case 陳述式 (Visual Basic) 在評估具有多個可能值的單一運算式時,也許更能發揮作用。 |
單行語法
您也可以用單行語法進行簡短的測試。然而,多行語法提供更多的結構和彈性,而且通常較易閱讀、維護和偵錯。
接下來會檢查 Then 關鍵字後面跟隨的內容,判斷陳述式是否為單行的 If。如果在 Then 之後同一行中出現的不是註解,則會將陳述式視為單行的 If 陳述式。如果沒有出現 Then,則該陳述式必須是多行 If...Then...Else 的開頭。
由於 If...Then 的結果,您可以使用單行語法中執行多個陳述式。所有陳述式都必須在同一行,並以冒號隔開。
範例
下列範例說明 If...Then...Else 陳述式多行語法的使用方式。
Dim count As Integer = 0
Dim message As String
If count = 0 Then
message = "There are no items."
ElseIf count = 1 Then
message = "There is 1 item."
Else
message = "There are " & count & " items."
End If
下列範例包含巢狀的 If...Then...Else 陳述式。
Private Function CheckIfTime() As Boolean
' Determine the current day of week and hour of day.
Dim dayW As DayOfWeek = DateTime.Now.DayOfWeek
Dim hour As Integer = DateTime.Now.Hour
' Return True if Wednesday from 2 to 4 P.M.,
' or if Thursday from noon to 1 P.M.
If dayW = DayOfWeek.Wednesday Then
If hour = 14 Or hour = 15 Then
Return True
Else
Return False
End If
ElseIf dayW = DayOfWeek.Thursday Then
If hour = 12 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
下列範例說明單行語法的使用方式。
If A > 10 Then A = A + 1 : B = B + A : C = C + B
請參閱
參考
Select...Case 陳述式 (Visual Basic)