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

Ejecuta condicionalmente un grupo de instrucciones en función del valor de una expresión.Conditionally executes a group of statements, depending on the value of an expression.

SintaxisSyntax

' Multiline syntax:  
If condition [ Then ]  
    [ statements ]  
[ ElseIf elseifcondition [ Then ]  
    [ elseifstatements ] ]  
[ Else  
    [ elsestatements ] ]  
End If  

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

Este artículo incluye varios ejemplos que muestran los usos de la If... Then... Else instrucción:This article includes several examples that illustrate uses of the If...Then...Else statement:

ElementosParts

condition
Requerido.Required. Expresión.Expression. Se debe evaluar como True o False, o a un tipo de datos que es implícitamente convertible a Boolean.Must evaluate to True or False, or to a data type that is implicitly convertible to Boolean.

Si la expresión es un Nullable Boolean variable que se evalúa como nada, la condición se trata como si la expresión es False y Else se ejecuta el bloque.If the expression is a Nullable Boolean variable that evaluates to Nothing, the condition is treated as if the expression is False and the Else block is executed.

Then
Requerido en la sintaxis de línea; opcional en la sintaxis de varias líneas.Required in the single-line syntax; optional in the multiline syntax.

statements
Opcional.Optional. Uno o más instrucciones que siguen If... Then que se ejecutan si condition se evalúa como True.One or more statements following If...Then that are executed if condition evaluates to True.

elseifcondition
Obligatorio si ElseIf está presente.Required if ElseIf is present. Expresión.Expression. Se debe evaluar como True o False, o a un tipo de datos que es implícitamente convertible a Boolean.Must evaluate to True or False, or to a data type that is implicitly convertible to Boolean.

elseifstatements
Opcional.Optional. Uno o más instrucciones que siguen ElseIf... Then que se ejecutan si elseifcondition se evalúa como True.One or more statements following ElseIf...Then that are executed if elseifcondition evaluates to True.

elsestatements
Opcional.Optional. Una o más instrucciones que se ejecutan si anterior ya no condition o elseifcondition expresión se evalúa como True.One or more statements that are executed if no previous condition or elseifcondition expression evaluates to True.

End If
Finaliza la versión de varias líneas de If... Then... Else bloque.Terminates the multiline version of If...Then...Else block.

ComentariosRemarks

Sintaxis de varias líneasMultiline syntax

Cuando un If... Then... Else se encuentra la instrucción, condition se ha probado.When an If...Then...Else statement is encountered, condition is tested. Si condition es True, las instrucciones que siguen Then se ejecutan.If condition is True, the statements following Then are executed. Si condition es False, cada ElseIf instrucción (si hay alguno) se evalúa en orden.If condition is False, each ElseIf statement (if there are any) is evaluated in order. Cuando un True elseifcondition se encuentra, las instrucciones que siguen inmediatamente asociado ElseIf se ejecutan.When a True elseifcondition is found, the statements immediately following the associated ElseIf are executed. Si no hay ningún elseifcondition se evalúa como True, o si no hay ningún ElseIf las instrucciones que siguen, instrucciones Else se ejecutan.If no elseifcondition evaluates to True, or if there are no ElseIf statements, the statements following Else are executed. Después de ejecutar las instrucciones que siguen Then, ElseIf, o Else, la ejecución continúa con la siguiente instrucción End If.After executing the statements following Then, ElseIf, or Else, execution continues with the statement following End If.

El ElseIf y Else cláusulas son opcionales.The ElseIf and Else clauses are both optional. Puede tener tantos ElseIf cláusulas como desee en un If... Then... Else instrucción, pero no ElseIf cláusula puede aparecer después de un Else cláusula.You can have as many ElseIf clauses as you want in an If...Then...Else statement, but no ElseIf clause can appear after an Else clause. If... Then... Else instrucciones pueden anidarse dentro de otros.If...Then...Else statements can be nested within each other.

En la sintaxis de varias líneas, el If instrucción debe ser la única instrucción en la primera línea.In the multiline syntax, the If statement must be the only statement on the first line. El ElseIf, Else, y End If instrucciones pueden ir precedidas solamente por una etiqueta de línea.The ElseIf, Else, and End If statements can be preceded only by a line label. El If... Then... Else bloque debe terminar con un End If instrucción.The If...Then...Else block must end with an End If statement.

Sugerencia

El seleccione... Caso instrucción podrían ser más útiles cuando se evalúa una expresión única que tiene varios valores posibles.The Select...Case Statement might be more useful when you evaluate a single expression that has several possible values.

Sintaxis de líneaSingle-Line syntax

Puede usar la sintaxis de línea para una única condición con el código que se ejecutarán si es true.You can use the single-line syntax for a single condition with code to execute if it's true. Sin embargo, la sintaxis de varias líneas proporciona más estructura y flexibilidad y es más fácil de leer, mantener y depurar.However, the multiple-line syntax provides more structure and flexibility and is easier to read, maintain, and debug.

A continuación el Then palabra clave se examina para determinar si la instrucción es una sola línea If.What follows the Then keyword is examined to determine whether a statement is a single-line If. Si algo distinto de un comentario aparece después de Then en la misma línea, la instrucción se trata como una sola línea If instrucción.If anything other than a comment appears after Then on the same line, the statement is treated as a single-line If statement. Si Then no está presente, debe ser el inicio de varias líneas If... Then... Else.If Then is absent, it must be the start of a multiple-line If...Then...Else.

En la sintaxis de línea, puede tener varias instrucciones que se ejecuta como resultado de un If... Then decisión.In the single-line syntax, you can have multiple statements executed as the result of an If...Then decision. Todas las instrucciones deben estar en la misma línea y estar separadas por signos de dos puntos.All statements must be on the same line and be separated by colons.

Ejemplo de sintaxis de varias líneasMultiline syntax example

En el ejemplo siguiente se muestra el uso de la sintaxis de varias líneas de la If... Then... Else instrucción.The following example illustrates the use of the multiline syntax of the If...Then...Else statement.

Module Multiline
    Public Sub Main()
        'Create a Random object to seed our starting value 
        Dim randomizer As New Random()
        'set our variable
        Dim count As Integer = randomizer.Next(0, 5)

        Dim message As String

        'If count is zero, output will be no items
        If count = 0 Then
            message = "There are no items."
        'If count is 1, output will be "There is 1 item.".        
        ElseIf count = 1 Then
            message = "There is 1 item."
        'If count is greater than 1, output will be "There are {count} items.", where {count} is replaced by the value of count. 
        Else
            message = $"There are {count} items."
        End If

        Console.WriteLine(message)
    End Sub
End Module
'This example displays output like the following:
' There are 4 items.

Ejemplo de sintaxis anidadaNested syntax example

El ejemplo siguiente contiene anidada If... Then... Else instrucciones.The following example contains nested If...Then...Else statements.

Module Nested
    Public Sub Main() 
        ' Run the function as part of the WriteLine output.
        Console.WriteLine("Time Check is " & CheckIfTime() & ".")     
    End Sub

    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 3:59 P.M.,
        ' or if Thursday from noon to 12:59 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
End Module
'This example displays output like the following:
'Time Check is False.

Ejemplo de sintaxis de líneaSingle-Line syntax example

En el ejemplo siguiente se muestra el uso de la sintaxis de línea.The following example illustrates the use of the single-line syntax.

Module SingleLine
    Public Sub Main()

        'Create a Random object to seed our starting values 
        Dim randomizer As New Random()

        Dim A As Integer = randomizer.Next(10, 20)
        Dim B As Integer = randomizer.Next(0, 20)
        Dim C As Integer = randomizer.Next(0, 5)

        'Let's display the initial values for comparison
        Console.WriteLine($"A value before If: {A}")
        Console.WriteLine($"B value before If: {B}")
        Console.WriteLine($"C value before If: {C}")

        ' 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

        'If the condition is true, the values will be different
        Console.WriteLine($"A value after If: {A}")
        Console.WriteLine($"B value after If: {B}")
        Console.WriteLine($"C value after If: {C}")

    End Sub
End Module
'This example displays output like the following:
'A value before If: 11
'B value before If: 6
'C value before If: 3
'A value after If: 12
'B value after If: 18
'C value after If: 21

Vea tambiénSee also

Choose
Switch
#If...Then...#Else (directivas)#If...Then...#Else Directives
Select...Case (instrucción)Select...Case Statement
Estructuras de control anidadasNested Control Structures
Estructuras de decisiónDecision Structures
Operadores lógicos y bit a bit en Visual BasicLogical and Bitwise Operators in Visual Basic
If (operador)If Operator