Contents
Index 🔎︎

# 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.

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