Guida di LibreOffice 24.8
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.
GoSub label[:]
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
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.
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