Istruzione GoSub...Return

Chiama una subroutine indicata con un'etichetta all'interno di una Sub o da una Function. Le istruzioni che seguono l'etichetta vengono eseguite fino alla successiva istruzione Return. In seguito, il programma continua con l'istruzione successiva a GoSub.

Sintassi:


GoSub label[:]

Parametri:

label: un identificatore per la riga che indica il punto dal quale continuare l'esecuzione. La visibilità di una label è all'interno della routine alla quale appartiene.

L'istruzione GoSub chiama una subroutine locale indicata con un'etichetta dall'interno di una subroutine o di una funzione. Il nome dell'etichetta deve terminare con due punti (":").


  Sub/Function foo
      ' istruzioni
      GoSub label
      ' istruzioni
      Exit Sub/Function
  label:
      ' istruzioni
      Return
  End Sub/Function
Icona di avvertenza

Se il programma incontra un'istruzione Return che non è preceduta da GoSub, LibreOffice Basic restituisce un messaggio di errore. Usate Exit Sub o Exit Function per fare in modo che il programma esca dalla subroutine o dalla funzione prima di raggiungere la successiva istruzione Return.


L'esempio seguente illustra l'uso di GoSub e Return. Eseguendo una sezione del programma due volte, il programma calcola la radice quadrata di due numeri inseriti dall'utente.

Esempio:


Sub ExampleGoSub
Dim iInputa As Single
Dim iInputb As Single
Dim iInputc As Single
    iInputa = Int(InputBox("Inserite il primo numero: ","NumeroInput"))
    iInputb = Int(InputBox("Inserite il secondo numero: ","NumeroInput"))
    iInputc=iInputa
    GoSub SquareRoot
    Print "La radice quadrata di";iInputa;" è";iInputc
    iInputc=iInputb
    GoSub SquareRoot
    Print "La radice quadrata di";iInputb;" è";iInputc
    Exit Sub
SquareRoot:
    iInputc=sqr(iInputc)
    Return
End Sub

Sosteneteci!