Contenido

# Instrucción If…Then…Else

Defines one or more statement blocks that you only want to execute if a given condition or expression is True.

### Sintaxis:

      If condition Then
          statements
      [{ElseIf} condition Then
          statements]
      [Else
          statements]
      {EndIf|End If}

En vez de End If, puede escribir EndIf.

If statements can be shortened to one line when using single statement blocks.

      If condition Then statement [Else statement]

### Parámetros:

La instrucción If…Then ejecuta bloques de programa dependiendo de ciertas condiciones. Cuando LibreOffice BASIC encuentra una instrucción If, se somete a prueba la condición. Si la condición es True, se ejecutan todas las instrucciones posteriores hasta la siguiente instrucción Else o ElseIf. Si la condición es False y le sigue una instrucción ElseIf, LibreOffice BASIC somete a prueba la siguiente expresión y ejecuta las instrucciones siguientes si la condición es True. Si es False, el programa continúa con la siguiente instrucción ElseIf o Else. Las instrucciones que siguen a Else se ejecutan solo si ninguna de las condiciones probadas anteriormente fue True. Una vez evaluadas todas las condiciones y ejecutadas las instrucciones correspondientes, el programa continúa con la instrucción que sigue a EndIf.

Es posible anidar varias instrucciones If...Then.

Las instrucciones Else y ElseIf son opcionales.

Se puede usar GoTo y GoSub para salir de un bloque If...Then, pero no para saltar dentro de una estructura If...Then.

### Ejemplo:

El ejemplo siguiente permite introducir una fecha de caducidad de un producto y determina si esta ya ha pasado.

    Sub ExampleIfThenDate
        Dim sInput As String
        Dim dInput As Date

      On Error Goto inputError
        sInput = InputBox("Enter the expiration date (YYYY-MM-DD)")
        dInput = DateValue(sInput)

        If dInput < Date() Then
            MsgBox "La fecha de caducidad ya ha pasado"
        ElseIf dInput > Date() Then
            MsgBox "La fecha de caducidad no ha pasado aún"
        Else
            MsgBox "La fecha de caducidad es hoy"
        End If

    inputError:
        If dInput = 0 Then MsgBox "Invalid input"
    End Sub

Temas relacionados

Select Case statement

Iif or Switch functions

¡Necesitamos su ayuda!