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 ElseElseIf. 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 ElseIfElse. 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.

Warning Icon

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