Compartir a través de


Cómo: Ejecutar instrucciones en función de una o varias condiciones

Actualización: noviembre 2007

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 la construcción If...Then...Else con la instrucción Else (Visual Basic) para definir dos bloques de instrucciones. Visual Basic ejecuta un bloque si la condición es True y el otro si es False. 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)
        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 (Visual Basic) 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

Cómo: Probar varios valores de una expresión

Cómo: Mantener el control cuando se produce un error

Conceptos

Estructuras de decisión

Estructuras de bucles

Estructuras de control adicionales

Estructuras de control anidadas

Otros recursos

Flujo de control en Visual Basic