Module
Contents
Index 🔎︎

# If...Then...Else Statement

定義一個或多個陳述式區塊，僅當給定條件為 True (真) 時才執行這些陳述區塊。

## 語法：

    If condition=true Then Statement block [ElseIf condition=true Then] Statement block [Else] Statement block EndIf

不寫成 Else If，而寫成 ElseIf；不寫成 End If，而寫成 EndIf。

## 參數：

If...Then 陳述式依給定的條件來執行程式區塊。當 LibreOffice Basic 遇到 If 陳述式時，首先會測試其條件。如果條件為 True (真)，則執行所有後續陳述式，直至遇到下一個 Else 或 ElseIf 陳述式。如果條件為 False (假)，並且後面有 ElseIf 陳述式，則 LibreOffice Basic 會測試下一個條件，如果為 True (真)，則執行其後的陳述式。如果仍為 False (假)，程式將繼續測試下一個 ElseIf 或 Else 陳述式。僅當測試的條件全部為 False (假) 時，才會執行 Else 後面的陳述式。演算完所有條件並執行了相應的陳述式之後，程式將繼續執行 EndIf 後面的陳述式。

If...Then 陳述式可以多層嵌套。

Else 和 ElseIf 陳述式是可選擇的。

您可以使用 GoTo 和 GoSub 跳出 If...Then 區塊，但是不能跳入 If...Then 結構。

以下示例可讓您輸入產品的有效期並確定產品是否已過期。

## 示例：

    Sub ExampleIfThenDate
    Dim sDate As String
    Dim sToday As String
        sDate = InputBox("Enter the expiration date (MM.DD.YYYY)")
        sDate = Right$(sDate, 4) + Mid$(sDate, 4, 2) + Left$(sDate, 2)
        sToday = Date$
        sToday = Right$(sToday, 4)+ Mid$(sToday, 4, 2) + Left$(sToday, 2)
        If sDate < sToday Then
            MsgBox "The expiration date has passed"
        ElseIf sDate > sToday Then
            MsgBox "The expiration date has not yet passed"
        Else
            MsgBox "The expiration date is today"
        End If
    End Sub