Module
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