LibreOffice 25.2 Hjelp
Kallar opp ein subrutine som er namngjeve med ein etikett inne i ein sub eller ein function. Uttrykket som kjem etter merkelappen med namnet på subrutinen vert utført fram til neste Return-uttrykk. Deretter held programmet fram med å utføra uttrykka som kjem etter GoSub-uttrykket.
GoSub label[:]
label: Ein linjeidentifikator som viser kvar køyringa skal halda fram. Omfanget av merkelappen er den rutinen han høyrer til i-
Uttrykket GoSub kallar opp ein lokal subrutine (underrutine), namngjeven med ein etikett, frå ein subrutine eller ein funksjon. Namnet på etikette må avsluttast med kolon («:»).
Sub/Function foo
' uttrykk
GoSub label
' uttrykk
Exit Sub/Function
label:
' uttrykk
Return
End Sub/Function
Viss programmet kjem til eit RETURN-uttrykk utan tilhøyrande GoSub vil LibreOffice Basic gje ei feilmelding. Bruk Exit Sub eller Exit Function for å vera sikker på at programmet går ut av subrutinen eller funksjonen før det kjem til RETURN.
Eksempelet viser bruken av GOSUB og RETURN. Ved å køyra programmet to gongar, vil det rekna ut kvadratrota av to tal som brukaren skriv inn.
Sub ExampleGoSub
Dim iInputa As Single
Dim iInputb As Single
Dim iInputc As Single
iInputa = Int(InputBox$ "Skriv inn det første talet: ","Talinnskriving"))
iInputb = Int(InputBox$ "Skriv inn det andre talet: ","Talinnskriving"))
iInputc=iInputa
GoSub SquareRoot
Print "Kvadratrota av";iInputa;" er";iInputc
iInputc=iInputb
GoSub SquareRoot
Print "Kvadratrota av";iInputb;" er";iInputc
Exit Sub
SquareRoot:
iInputc=sqr(iInputc)
Return
End Sub