Procedura: eseguire istruzioni in base a una o più condizioni
Aggiornamento: novembre 2007
È possibile utilizzare un'Istruzione If...Then...Else (Visual Basic) per eseguire una specifica istruzione o un blocco di istruzioni a seconda del valore Tipo di dati Boolean (Visual Basic) di una condizione. La condizione è in genere il risultato di un confronto tra due valori, ma può anche essere una qualsiasi espressione che restituisca un valore Boolean (True o False). Sono compresi i valori di altri tipi di dati, come i tipi numerici, convertiti in Boolean.
Per eseguire una o più istruzioni se una condizione è True
Se è necessario eseguire una sola istruzione, utilizzare la sintassi a riga singola della costruzione If...Then...Else. Non è necessario utilizzare le istruzioni Else o End If. Questa condizione è illustrata nell'esempio che segue.
Sub fixDate() Dim myDate As Date = #2/13/1973# If myDate < Now Then myDate = Now End Sub
-oppure-
Per eseguire più righe di codice quando la condizione è True, utilizzare la sintassi su più righe, che comprende l'istruzione End If. Se non esiste alcun codice da eseguire quando la condizione è False, omettere l'istruzione Else. Questa condizione è illustrata nell'esempio che segue.
Dim alertLabel As New System.Windows.Forms.Label Sub alertUser(ByVal value As Long) If value = 0 Then alertLabel.ForeColor = System.Drawing.Color.Red alertLabel.Font = New Font(alertLabel.Font, _ FontStyle.Bold Or FontStyle.Italic) End If End Sub
Per eseguire alcune istruzioni se una condizione è True e altre istruzioni se la condizione è False
Utilizzare una costruzione If...Then...Else con l'istruzione Else (Visual Basic) per definire due blocchi di istruzioni. Visual Basic eseguirà un blocco se la condizione è True e l'altro se la condizione è False. Questa condizione è illustrata nell'esempio che segue.
Dim alertLabel As New System.Windows.Forms.Label Sub alertUser(ByVal value As Long) If value = 0 Then alertLabel.ForeColor = System.Drawing.Color.Red alertLabel.Font = New Font(alertLabel.Font, _ FontStyle.Bold Or FontStyle.Italic) Else alertLabel.Forecolor = System.Drawing.Color.Black alertLabel.Font = New Font(alertLabel.Font, _ FontStyle.Regular) End If End Sub
Per verificare ulteriori condizioni se la prima condizione è False
Utilizzare una costruzione If...Then...Else con una o più istruzioni ElseIf (Visual Basic) per verificare ulteriori condizioni se la prima condizione è False. Nell'esempio riportato di seguito la routine Function calcola un bonus sullo stipendio in base alla valutazione delle prestazioni del dipendente. Il blocco di istruzioni che segue l'istruzione Else viene eseguito solo se le condizioni nelle istruzioni If e ElseIf sono tutte False.
Function bonus(ByVal performance As Integer, ByVal salary As Decimal) _ As Decimal If performance = 1 Then Return salary * 0.1 ElseIf performance = 2 Then Return salary * 0.09 ElseIf performance = 3 Then Return salary * 0.07 Else Return 0 End If End Function
Visual Basic esegue la verifica delle condizioni nell'ordine in cui sono riportate nelle istruzioni If...Then...Else. Quando viene rilevata una condizione True o un'istruzione Else, viene eseguito il blocco di istruzioni corrispondente. Il controllo viene quindi passato all'istruzione che segue End If.
Possono essere presenti più istruzioni ElseIf o nessuna. È possibile inserire oppure omettere un'istruzione Else, indipendentemente dalla presenza di istruzioni ElseIf.
Vedere anche
Attività
Procedura: trasferire un controllo fuori da una struttura di controllo
Procedura: verificare più valori di un'espressione
Procedura: mantenere il controllo quando si verifica un errore
Concetti
Strutture di controllo nidificate