Enhavo
Indekso 🔎︎

# If...Then...Else Statement

Difinas almenaŭ unu ordonan blokon rulota nur se specifa kondiĉo estas vera.

## Sintakso:

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

Instead of Else If you can write ElseIf, instead of End If you can write EndIf.

## Parametroj:

La ordono If...Then rulas programajn blokojn depende de donitaj kondiĉoj. Kiam LibreOffice Basic aliras ordonon If, ĝi testas la kondiĉon. Se la kondiĉo estas vera, ĝi rulas ĉiujn postajn ordonojn ĝis la venonta ordono Else aŭ ElseIf. Se la kondiĉo estas falsa, kaj ordono ElseIf sekvas, LibreOffice Basic testas la sekvantan kondiĉon kaj rulas la sekvantajn ordonojn se la kondiĉo estas vera. Se falsa, la programo daŭrigas laŭ aŭ la venonta ElseIf aŭ Else. Ordonoj sekvantaj la ordonon Else ruliĝas nur se neniu el la antaŭe testitaj kondiĉoj estis vera. Komputinte ĉiujn kondiĉojn, kaj rulinte la korespondajn ordonojn, la programo daŭrigas laŭ la ordono kiu sekvas la EndIf.

Oni povas ingi plurajn ordonojn If...Then.

Ordonoj Else kaj ElseIf estas nedevigaj.

Oni povas uzi ordonojn GoTo kaj GoSub por salti el If...Then bloko, sed ne por salti en strukturon If...Then.

La jena ekzemplo ebligas al uzanto entajpi la finiĝan daton de produkto, kaj komputas ĉu la finiĝa dato jam pasis.

## Ekzemplo:

    Sub ExampleIfThenDate
    Dim sDate As String
    Dim sToday As String
        sDate = InputBox("Tajpu la finiĝan daton (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 "La finiĝa dato jam pasis"
        ElseIf sDate > sToday Then
            MsgBox "La finiĝa dato ankoraŭ ne pasis"
        Else
            MsgBox "La finiĝa dato estas hodiaŭ"
        End If
    End Sub