Instructie GoSub...Return

Roept een subroutine aan die wordt aangegeven door een label in een Sub of een Function. De instructies na het label worden uitgevoerd tot de volgende instructie Return. Daarna gaat het programma verder met de instructie die volgt op de instructie GoSub.

Syntaxis:


GoSub label[:]

Parameters:

label: Een regel-ID die aangeeft waar de uitvoering moet worden voortgezet. Het bereik van een label is dat van de routine waartoe het behoort.

De instructie GoSub roept een lokale subroutine aan die wordt aangegeven door een label vanuit een subroutine of een functie. De naam van het label moet eindigen op een dubbele punt (":").


  Sub/Function foo
      ' instructies
      GoSub label
      ' instructies
      Exit Sub/Function
  label:
      ' instructies
      Return
  End Sub/Function
Waarschuwingspictogram

Als het programma een Return-instructie tegenkomt die niet door GoSub voorafgegaan wordt, geeft LibreOffice Basic een foutmelding. Gebruik Exit Sub of Exit Function om ervoor te zorgen dat het programma een 'Sub' of 'Function' verlaat voordat de volgende Return-instructie bereikt wordt.


In het volgende voorbeeld wordt het gebruik van GoSub en Return uitgelegd. Het programma kan de vierkantswortel berekenen van twee getallen die door de gebruiker worden ingevoerd, door een programmasectie tweemaal uit te voeren.

Voorbeeld:


Sub ExampleGoSub
Dim iInputa As Single
Dim iInputb As Single
Dim iInputc As Single
    iInvoera = Int(InputBox$ ("Voer het eerste getal in: ","Getalinvoer"))
    iInvoerb = Int(InputBox$ ("Voer het tweede getal in: ","Getalinvoer"))
    iInputc=iInputa
    GoSub SquareRoot
    Print "De vierkantswortel van ";iInvoera;" is";iInvoerc
    iInputc=iInputb
    GoSub SquareRoot
    Print "De vierkantswortel van";iInvoerb;" is";iInvoerc
    Exit Sub
SquareRoot:
    iInputc=sqr(iInputc)
    Return
End Sub

Help ons, alstublieft!