Condividi tramite


Procedura: eseguire istruzioni in base a una o più condizioni (Visual Basic)

È 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 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. Nell'esempio riportato di seguito viene illustrata questa situazione.

    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 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 (Visual Basic)

Procedura: testare più valori di un'espressione (Visual Basic)

Procedura: mantenere il controllo quando si verifica un errore (Visual Basic)

Concetti

Strutture decisionali (Visual Basic)

Strutture di ciclo (Visual Basic)

Altre strutture di controllo (Visual Basic)

Strutture di controllo annidate (Visual Basic)

Altre risorse

Flusso di controllo in Visual Basic