Cómo: Ejecutar instrucciones en función de una o varias condiciones (Visual Basic)

Puede utilizar Instrucción If...Then...Else (Visual Basic) para ejecutar una instrucción específica o un bloque de instrucciones dependiendo del valor Boolean (Tipo de datos, Visual Basic) de una condición. Generalmente, la condición es el resultado de comparar dos valores, pero también puede ser cualquier expresión que da como resultado un valor Boolean (True o False). Esto incluye los valores de otros tipos de datos, como los numéricos, que han sido convertidos a valores de tipo Boolean.

Para ejecutar una o más instrucciones si una condición es verdadera

  • Si tiene sólo una instrucción para ejecutar, utilice la sintaxis de línea única de la construcción If...Then...Else. No necesita las instrucciones Else o End If Esto se ilustra en el siguiente ejemplo:

    Sub fixDate()
        Dim myDate As Date = #2/13/1973#
        If myDate < Now Then myDate = Now
    End Sub
    

    O bien

  • Para ejecutar más de una línea de código cuando la condición es True, se utiliza la sintaxis de varias líneas, que incluye la instrucción End If. Si no tiene ningún código para ejecutar cuando la condición es False, omita la instrucción Else. Esto se ilustra en el siguiente ejemplo:

    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
    

Para ejecutar algunas instrucciones si una condición es verdadera y otras si es falsa

  • Utilice una construcción If...Then...Else con la instrucción Else (Instrucción, Visual Basic) para definir dos bloques de instrucciones. Visual Basic ejecuta un bloque si la condición es True y el otro bloque si la condición es False. Esto se puede ver en el ejemplo siguiente.

    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
    

Para probar las condiciones adicionales si la primera condición es falsa

  • Utilice la construcción If...Then...Else con una o más instrucciones ElseIf para probar las condiciones adicionales si la primera condición es False. En el siguiente ejemplo, el procedimiento Function calcula una bonificación en la nómina basándose en el nivel de rendimiento. El bloque de instrucciones que sigue a la instrucción Else sólo se ejecuta si las condiciones de las instrucciones If y ElseIf son todas 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 prueba las condiciones en el orden en que aparecen en las instrucciones If...Then...Else. Si encuentra una condición True o una instrucción Else, ejecuta el bloque de instrucciones correspondiente. Después, el control pasa a la instrucción que sigue a la instrucción End If.

    Puede existir un número arbitrario de instrucciones ElseIf o ninguna. Puede incluir u omitir una instrucción Else independientemente de que existan otras instrucciones ElseIf.

Vea también

Tareas

Cómo: Transferir el control fuera de una estructura de control (Visual Basic)

Cómo: Probar varios valores de una expresión (Visual Basic)

Cómo: Mantener el control cuando se produce un error (Visual Basic)

Conceptos

Estructuras de decisión (Visual Basic)

Estructuras de bucles (Visual Basic)

Estructuras de control adicionales (Visual Basic)

Estructuras de control anidadas (Visual Basic)

Otros recursos

Flujo de control en Visual Basic