Istruzione If...Then...Else (Visual Basic)

Aggiornamento: novembre 2007

Consentono di eseguire un gruppo di istruzioni in modo condizionale in base al valore di un'espressione.

If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If
-or-
If condition Then [ statements ] [ Else [ elsestatements ] ]

Parti

  • condition
    Obbligatoria. Espressione. Deve restituire True o False o un tipo di dati implicitamente convertibile in Boolean.

  • Then
    Obbligatoria nel form a riga singola, facoltativa nel form a riga multipla.

  • statements
    Facoltativa. Una o più istruzioni successive a If...Then che vengono eseguite se condition restituisce True.

  • elseifcondition
    Obbligatoria se ElseIf è presente. Espressione. Deve restituire True o False o un tipo di dati implicitamente convertibile in Boolean.

  • elseifstatements
    Facoltativa. Una o più istruzioni successive a ElseIf...Then che vengono eseguite se elseifcondition restituisce True.

  • elsestatements
    Facoltativa. Una o più istruzioni eseguite se nessuna delle espressioni condition o elseifcondition precedenti restituisce True.

  • End If
    Termina il blocco If...Then...Else.

Note

Il form a riga singola è utile per eseguire test semplici e rapidi ma il form a righe multiple assicura maggiore strutturazione, flessibilità e facilità nelle operazioni di lettura, gestione e debug.

Quando viene rilevato un form a righe multiple If...Then...Else viene eseguito il test di condition. Se condition è True, verranno eseguite le istruzioni successive a Then, Se condition è False, verranno valutate le singole istruzioni ElseIf nell'ordine specificato. Quando viene rilevata una parte elseifcondition che restituisce True, verranno eseguite le istruzioni immediatamente successive all'istruzione Then associata. Se nessuna parte elseifcondition restituisce True, o se non vi sono istruzioni ElseIf, verranno eseguite le istruzioni successive a Else. Dopo l'esecuzione delle istruzioni successive a Then, ElseIf o Else, l'esecuzione procede con l'istruzione successiva all'istruzione End If.

Suggerimento:

L'Istruzione Select...Case (Visual Basic) potrebbe essere più utile quando viene valutata una sola espressone che prevede diversi valori possibili.

Un form a riga singola consente l'esecuzione di istruzioni multiple in base al risultato di una decisione If...Then. Tutte le istruzioni devono trovarsi sulla stessa riga ed essere separate da due punti. Nell'esempio che segue viene illustrato quanto descritto.

If A > 10 Then A = A + 1 : B = B + A : C = C + B

Nel form a righe multiple, l'istruzione If deve essere la sola istruzione sulla prima riga. Le istruzioni ElseIf, Else e End If possono essere precedute solo da un'etichetta di riga. Il blocco a righe multiple If...Then...Else deve terminare con un'istruzione End If.

Per stabilire se un'istruzione If introduce o meno un form a righe multiple, è necessario esaminare cosa segue la parola chiave Then Se dopo Then nella stessa istruzione compare qualsiasi cosa che non sia un commento, l'istruzione è considerata come un'istruzione If a riga singola. Se la parola chiave Then non è presente, si tratta dell'inizio di un'istruzione If...Then...Else a righe multiple.

Le clausole ElseIf e Else sono entrambe facoltative. Un blocco If...Then...Else a righe multiple può contenere un numero illimitato di clausole ElseIf a condizione che nessuna di esse sia successiva a una clausola Else. È consentita la nidificazione di form a righe multiple in form dello stesso tipo.

Esempio

Nell'esempio seguente vengono illustrati sia i form a riga singola che i form a righe multiple dell'istruzione If...Then...Else.

Dim number, digits As Integer
Dim myString As String
number = 53
If number < 10 Then
    digits = 1
ElseIf number < 100 Then
    digits = 2
Else
    digits = 3
End If
If digits = 1 Then myString = "One" Else myString = "More than one"

Nell'esempio precedente, la condizione ElseIf restituisce True e a digits viene assegnato il valore 2. L'ultima istruzione assegna quindi un valore superiore a uno a myString.

Vedere anche

Riferimenti

Direttive #If...Then...#Else

Funzione Choose

Istruzione Select...Case (Visual Basic)

Funzione Switch