GoSub...Instrução Return

Chama uma sub-rotina indicada por um rótulo dentro de um Sub ou de um Function. As instruções que se seguem ao rótulo são executadas até à próxima instrução Return. Em seguida, o programa continua com a instrução que se segue à instrução GoSub.

Sintaxe:


GoSub label[:]

Parâmetros:

etiqueta: Um identificador de linha que indica onde continuar a execução. O âmbito de uma etiqueta corresponde ao da rotina a que pertence.

A instrução GoSub chama uma sub-rotina local indicada por um rótulo a partir do interior de uma sub-rotina ou de uma função. O nome do rótulo deve terminar com dois pontos (":").


  Sub/Function foo
      ' declarações
      GoSub label
      ' declarações
      Exit Sub/Function
  label:
      ' declarações
      Return
  End Sub/Function
Ícone de aviso

Se o programa encontrar uma instrução Return que não seja precedida por GoSub, o LibreOffice Basic devolve uma mensagem de erro. Utilize Exit Sub ou Exit Function para garantir que o programa abandona uma Sub ou Função antes de atingir a próxima instrução Return.


O seguinte exemplo demonstra a utilização das instruções GoSub e Return. Ao executar uma secção do programa duas vezes, o programa calcula a raiz quadrada de dois números inseridos pelo utilizador.

Exemplo:


Sub ExampleGoSub
Dim iInputa As Single
Dim iInputb As Single
Dim iInputc As Single
    iInputa = Int(InputBox("Introduza o primeiro número: ","Entrada de número"))
    iInputb = Int(InputBox("Introduza o segundo número: ","Entrada de número"))
    iInputc=iInputa
    GoSub SquareRoot
    Print "A raiz quadrada de";iInputa;" é";iInputc
    iInputc=iInputb
    GoSub SquareRoot
    Print "A raiz quadrada de";iInputb;" é";iInputc
    Exit Sub
SquareRoot:
    iInputc=sqr(iInputc)
    Return
End Sub

D'oh! You found a bug (text/sbasic/shared/03090302.xhp#GoToh1 not found).

Necessitamos da sua ajuda!

Necessitamos da sua ajuda!