Share via


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

Actualización: noviembre 2007

Ejecuta de forma condicional un grupo de instrucciones, dependiendo del valor de una expresión.

If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If
-or-
If condition Then [ statements ] [ Else [ elsestatements ] ]

Partes

  • condition
    Obligatorio. Expresión. Se debe evaluar como True o False, o como un tipo de datos que es implícitamente convertible a Boolean.

  • Then
    Obligatorio en la forma de una línea, opcional en la forma 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. Se debe evaluar como True o False, o como un tipo de datos que es 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

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

Cuando se encuentra una estructura If...Then...Else, se comprueba la condition. Si condition es True, se ejecutan las instrucciones que están a continuación de Then. Si condition es False, se evalúan por orden cada una de las instrucciones ElseIf. Cuando se encuentra una elseifcondition que sea True, se ejecutan las instrucciones que siguen inmediatamente a la instrucción Then 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.

Sugerencia:

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

Con el formato de una sola línea, es posible ejecutar 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. En el siguiente ejemplo se muestra cómo.

If A > 10 Then A = A + 1 : B = B + A : C = C + B

Con la forma 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 de varias líneas debe finalizar con una instrucción End If.

Para determinar si una instrucción If introduce o no un formato de varias líneas, examine lo que sigue a la palabra clave Then. Si aparece cualquier otra cosa que no sea un comentario después de Then en la misma instrucción, é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.

Las cláusulas ElseIf y Else son opcionales. Puede tener tantas cláusulas ElseIf como desee en una instrucción If...Then...Else de varias líneas, pero no puede aparecer ninguna de ellas después de una cláusula Else. Los formatos de múltiples líneas pueden anidarse unos dentro de otros.

Ejemplo

En el ejemplo siguiente se muestran los formatos de varias líneas y de una sola línea de la instrucción If...Then...Else.

Dim number, digits As Integer
Dim myString As String
number = 53
If number < 10 Then
    digits = 1
ElseIf number < 100 Then
    digits = 2
Else
    digits = 3
End If
If digits = 1 Then myString = "One" Else myString = "More than one"

En el ejemplo anterior, la condición ElseIf se evalúa como True y se asigna a digits un valor de 2. A continuación, la última instrucción le asigna un valor de "Más de una" a myString.

Vea también

Referencia

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

Choose (Función)

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

Switch (Función)