Condividi tramite


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 decisionali

Strutture di ciclo

Altre strutture di controllo

Strutture di controllo nidificate

Altre risorse

Flusso di controllo in Visual Basic