Inhoud
Index 🔎︎

# 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

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

Verwante onderwerpen

Instructie GoTo

instructie On...GoSub; Instructie On...GoTo