Compartir a través de


Instrucción If...Then...Else (Visual Basic)

Ejecuta condicionalmente un grupo de instrucciones en función del valor de una expresión.

' Multiple-line syntax:
If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If

' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]

Elementos

  • condition
    Requerido. Expresión. Debe evaluarse en True o False, o en un tipo de datos que sea implícitamente convertible a Boolean.

    Si la expresión es una variable Valores NULLBoolean que evalúa Nada, se trata la condición como si la expresión no es True, y ejecuta el bloque Else .

  • Then
    Obligatorio en la sintaxis de una línea, opcional en la sintaxis de varias líneas.

  • statements
    Opcional. Se ejecutan una o más instrucciones que siguen a If...Then que se ejecutan si condition se evalúa como True.

  • elseifcondition
    Obligatorio si ElseIf está presente. Expresión. Debe evaluarse en True o False, o en un tipo de datos que sea implícitamente convertible a Boolean.

  • elseifstatements
    Opcional. Se ejecutan una o más instrucciones que siguen a ElseIf...Then que se ejecutan si elseifcondition se evalúa como True.

  • elsestatements
    Opcional. Una o más instrucciones que se ejecutan si ninguna expresión condition o elseifcondition anterior se evalúa como True.

  • End If
    Termina el bloque If...Then...Else.

Comentarios

Sintaxis de varias líneas

Cuando se encuentra una instrucción If...Then...Else, se prueba condition. Si condition es True, se ejecutan las instrucciones que están a continuación de Then. Si condition es False, cada instrucción ElseIf (si hay alguna) se evalúa en orden. Cuando se encuentra una elseifcondition que sea True, se ejecutan las instrucciones que siguen inmediatamente a la instrucción ElseIf asociada. Si elseifcondition se evalúa como True, o si no hay ninguna instrucción ElseIf, se ejecutan las instrucciones situadas después de Else. Después de la ejecución de las instrucciones que siguen a Then, ElseIf o Else, la ejecución continúa con la instrucción que sigue a End If.

Las cláusulas ElseIf y Else son opcionales. Puede tener tantas cláusulas ElseIf como desee en una instrucción If...Then...Else, pero no puede aparecer ninguna cláusula ElseIf después de una cláusula Else. If...Then...Else las instrucciones se pueden anidar una dentro de otra.

Con la sintaxis de varias líneas, la instrucción If debe ser la única instrucción incluida en la primera línea. Las instrucciones ElseIf, Else y End If pueden ir precedidas solamente por una etiqueta de línea. El bloque If...Then...Else debe terminar con una instrucción End If.

Sugerencia

La Instrucción Select...Case (Visual Basic) puede ser más útil al evaluar una única expresión que tiene varios valores posibles.

Sintaxis de una única línea

Puede utilizar la sintaxis de una sola línea para pruebas cortas y sencillas. Sin embargo, la sintaxis de varias líneas proporciona más estructura y flexibilidad y, generalmente, es más fácil de leer, mantener y depurar.

Lo que sigue a la palabra clave Then se examina para determinar si una declaración es un If de una sola línea. Si aparece cualquier otra cosa que no sea un comentario después de Then en la misma línea, ésta se trata como una instrucción If de una sola línea. Si no está presente Then, debe ser el comienzo de una instrucción If...Then...Else de varias líneas.

En la sintaxis de una línea, puede que se ejecuten varias instrucciones como resultado de una decisión If...Then. Todas las instrucciones deben estar en la misma línea y separarse con dos puntos.

Ejemplo

En el ejemplo siguiente se muestra el uso de la sintaxis de varias líneas de la instrucción If...Then...Else.

        Dim count As Integer = 0
        Dim message As String 

        If count = 0 Then
            message = "There are no items." 
        ElseIf count = 1 Then
            message = "There is 1 item." 
        Else
            message = "There are " & count & " items." 
        End If

El ejemplo siguiente contiene instrucciones If...Then...Else anidadas.

Private Function CheckIfTime() As Boolean 
    ' Determine the current day of week and hour of day. 
    Dim dayW As DayOfWeek = DateTime.Now.DayOfWeek
    Dim hour As Integer = DateTime.Now.Hour

    ' Return True if Wednesday from 2 to 4 P.M., 
    ' or if Thursday from noon to 1 P.M. 
    If dayW = DayOfWeek.Wednesday Then 
        If hour = 14 Or hour = 15 Then 
            Return True 
        Else 
            Return False 
        End If 
    ElseIf dayW = DayOfWeek.Thursday Then 
        If hour = 12 Then 
            Return True 
        Else 
            Return False 
        End If 
    Else 
        Return False 
    End If 
End Function

En el ejemplo siguiente se muestra el uso de la sintaxis de una única línea.

' If A > 10, execute the three colon-separated statements in the order 
' that they appear 
If A > 10 Then A = A + 1 : B = B + A : C = C + B

Vea también

Referencia

#If...Then...#Else (Directivas)

Choose

Instrucción Select...Case (Visual Basic)

Switch

If (Operador) (Visual Basic)

Conceptos

Estructuras de control anidadas (Visual Basic)

Estructuras de decisión (Visual Basic)

Operadores lógicos y bit a bit en Visual Basic