If...Then...Else 陳述式 (Visual Basic)
更新:2010 年 12 月
依據運算式的值,有條件的執行一組陳述式。
' 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 的資料型別。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
請參閱
工作
HOW TO:依據一個或多個條件執行陳述式 (Visual Basic)
參考
Select...Case 陳述式 (Visual Basic)
概念
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2010 年 12 月 |
已重新組織<備註>一節。 |
資訊加強。 |
2010 年 12 月 |
新增一個範例。 |
客戶回函。 |