Istruzione If...Then...Else

Definisce uno o più blocchi di istruzioni da eseguire se una determinata condizione o espressione risulta True (vera).

Sintassi:

Istruzione If...EndIf

Frammento ElseIf

Frammento Else


  If condition Then 
      statements
  [{ElseIf|Else If} expression Then
      statements]
  [Else 
      statements]
  {EndIf|End If}

Al posto di Else If potete scrivere ElseIf ed End If anziché EndIf.

tip

Quando i blocchi sono costituiti da una singola istruzione, le istruzioni If possono essere abbreviate su un'unica riga.



  If condition Then statement [Else statement]

Parametri:

L'istruzione If...Then esegue dei blocchi di programma a seconda delle condizioni impostate. Quando LibreOffice Basic incontra un'istruzione If, la condizione viene valutata. Se questa è True (vera), vengono eseguite tutte le istruzioni successive fino alla prossima istruzione Else o ElseIf. Se la condizione risulta False (falsa) ed è seguita da un'istruzione ElseIf, LibreOffice Basic verifica l'espressione successiva e, se la condizione è True, esegue le istruzioni che la seguono. Se invece è False, il programma continua con la successiva istruzione ElseIf o Else. Le istruzioni successive a Else vengono eseguite solo se nessuna delle precedenti condizioni è risutata essere True (vera). Dopo aver valutato tutte le condizioni e aver eseguito le istruzioni corrispondenti, il programma continua con l'istruzione che segue EndIf.

Le istruzioni If...Then possono essere annidate.

Le istruzioni Else e ElseIf sono opzionali.

Icona di avvertenza

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


Esempio:

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


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

Sostienici!