If...Then...Else Statement

Lause määrittelee yhden tai useamman lauselohkon, jotka on tarkoitus suorittaa vain, jos annettu ehto täyttyy.

Syntaksi:


If ehto_1=true Then lauselohko_1 [ElseIf ehto_m=true Then] lauselohko_m [Else] lauselohko_n EndIf

Else If voidaan kirjoittaa ElseIf ja End If voidaan kirjoittaa EndIf.

Parametrit:

If...Then -lause suorittaa ohjelmalohkoja annettujen ehtojen mukaisesti. Kun LibreOffice Basic tulkitsee If lauseen, ehto_1 testataan. Jos ehto_1:n totuusarvo on True (tosi), kaikki seuraavat lauseet suoritetaan seuraavaan Else- tai ElseIf-lauseeseen asti. Jos ehto_1:n arvo on False (epätosi) ja ElseIf-lause seuraa, LibreOffice Basic testaa seuraavan ehdon ja suorittaa seuraavat lauseet, jos ehto on arvoltaan True. Jos arvo on False, ohjelma jatkaa seuraavasta ElseIf- tai Else-lauseesta. Else-osan lauseet suoritetaan vain, jos mikään edellisistä testeistä ei ole tuottanut arvoa True. Kun kaikki ehdot on arvioitu ja niitä vastaavat rivit suoritettu, ohjelma jatkuu EndIf-rivin jälkeisestä lauseesta.

Useita If...Then -lauseita voi asettaa sisäkkäin.

Else- ja ElseIf-lauseet ovat valinnaisia.

Varoitus-kuvake

GoTo- tai GoSub-käskyä voi käyttää If...Then-lohkosta poistumiseen, muttei If...Then-rakenteeseen sisään siirtymiseen.


Seuraavassa esimerkissä on mahdollista syöttää tuotteen vanhentumispäivä ja määrittää, onko vanhentumispäivä jo ohitettu.

Esimerkki:


Sub ExampleIfThenDate
Dim sDate As String
Dim sToday As String
    sDate = InputBox("Anna vanhentumispäivä (PP.KK.VVVV)")
    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 "Vanhentumispäivä on ohitettu"
    ElseIf sDate > sToday Then
        MsgBox "Vanhentumispäivä ei ole vielä mennyt"
    Else
        MsgBox "Vanhentumispäivä on tänään"
    End If
End Sub