Conteúdo

# Instrução If...Then...Else

Define um ou mais blocos de instruções que só se pretende executar se uma determinada condição ou expressão for True.

### Sintaxe:

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

Em vez de End If, pode escrever EndIf.

As instruções If podem ser encurtadas para uma única linha quando se utilizam blocos de instrução única.

      If condition Then statement [Else statement]

### Parâmetros:

A instrução If...Then executa blocos de código em função de determinadas condições. Quando o LibreOffice Basic encontra uma instrução If, a condição é avaliada. Se a condição for True, todas as instruções subsequentes até à próxima instrução Else ou ElseIf são executadas. Se a condição for False e seguir-se uma instrução ElseIf, o LibreOffice Basic verifica a expressão seguinte e executa as instruções seguintes se a condição for True. Se for False, o programa continua com a próxima instrução ElseIf ou Else. As instruções que se seguem a Else são executadas apenas se nenhuma das condições testadas anteriormente for True. Depois de todas as condições serem avaliadas e das instruções correspondentes serem executadas, o programa continua com a instrução que se segue a EndIf.

Pode imbricar múltiplas instruções If...Then.

As instruções Else e ElseIf são opcionais.

Pode utilizar GoTo e GoSub para sair de um bloco If...Then, mas não para entrar numa estrutura If...Then.

### Exemplo:

O seguinte exemplo permite-lhe introduzir a data de validade de um produto, e determina se esta já foi ultrapassada.

    Sub ExampleIfThenDate
        Dim sInput As String
        Dim dInput As Date

      On Error Goto inputError
        sInput = InputBox("Introduza a data de validade (AAAA-MM-DD)")
        dInput = DateValue(sInput)

        If dInput < Date() Then
            MsgBox "A data de validade já passou"
        ElseIf dInput > Date() Then
            MsgBox "A data de validade ainda não passou"
        Else
            MsgBox "A data de validade termina hoje"
        End If

    inputError:
        Se dInput = 0, então MsgBox "Entrada inválida"
    End Sub

Tópicos relacionados

Instrução Select Case

Funções Iif ou Switch

Necessitamos da sua ajuda!