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:

Instrução If...EndIf


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

Em vez de End If, pode escrever EndIf.

Ícone da dica

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.

Ícone de aviso

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
Necessitamos da sua ajuda!

Necessitamos da sua ajuda!