Istruzione If... Then... Else

Contenuto
Indice 🔎︎

# Istruzione If...Then...Else

Definisce uno o più blocchi di istruzioni da eseguire solo qualora una determinata condizione sia vera.

## Sintassi:

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

Anziché Else If potete scrivere ElseIf, anziché End If potete scrivere EndIf.

## Parametri:

L'istruzione If... Then esegue blocchi di programma in base a determinate condizioni. Quando LibreOffice Basic incontra un'istruzione If, viene verificata la condizione specificata. Se la condizione è vera, vengono eseguite tutte le istruzioni seguenti fino alla successiva istruzione Else o ElseIf. Se la condizione è falsa ed è seguita da un'istruzione ElseIf, LibreOffice Basic verifica la condizione successiva e, se questa è vera, esegue le istruzioni seguenti. Se anche questa è falsa, il programma continua con la successiva istruzione ElseIf o Else. Le istruzioni successive a Else vengono eseguite solo se nessuna delle condizioni verificate in precedenza era vera. Dopo aver valutato tutte le condizioni, e aver eseguito le istruzioni corrispondenti, il programma continua con l'istruzione successiva a EndIf.

Le istruzioni If...Then possono essere annidate.

Le istruzioni Else e ElseIf sono opzionali.

Potete usare le istruzioni GoTo e GoSub per uscire da un blocco If...Then, ma non per entrare in una struttura If...Then.

L'esempio seguente permette di inserire la data di scadenza di un prodotto e determina se tale data sia trascorsa.

## Esempio:

    Sub ExampleIfThenDate
    Dim sDate As String
    Dim sToday As String
        sDate = InputBox("Inserite la data di scadenza (MM.GG.AAAA)")
        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 data di scadenza è già trascorsa"
        ElseIf sDate > sToday Then
            MsgBox "La data di scadenza non è ancora trascorsa"
        Else
            MsgBox "La data di scadenza è oggi"
        End If
    End Sub