Instrukcja GoSub...Return

Wywołuje podprogram, który jest wskazany przez etykietę wewnątrz Sub lub Function. Instrukcje następujące po etykiecie są wykonywane do następnej instrukcji Return. Następnie program kontynuuje wykonywanie instrukcji następującej po instrukcji GoSub.

Składnia:


GoSub label[:]

Parametry:

label: Identyfikator wiersza wskazujący, gdzie kontynuować wykonywanie. Zakres etykiety w zakresie procedury, do której należy.

Instrukcja GoSub wywołuje lokalny podprogram wskazany przez etykietę z podprogramu lub funkcji. Nazwa etykiety musi kończyć się dwukropkiem (":").


  Sub/Function foo
      ' instrukcje
      GoSub label
      ' instrukcje
      Exit Sub/Function
  label:
      ' instrukcje
      Return
  End Sub/Function
Ikona ostrzeżenia

Jeśli program napotka instrukcję Return, która nie była poprzedzona instrukcją GoSub, LibreOffice zwraca komunikat o błędzie. W celu upewnienia się, że program opuści procedurę (Sub) lub funkcję (Function), zanim napotka następną instrukcję Return, należy użyć instrukcji Exit Sub lub Exit Function.


Poniższy przykład przedstawia użycie instrukcji GoSub i Return. Dwukrotne uruchomienie sekcji programu powoduje obliczenie pierwiastka kwadratowego dwóch liczb wprowadzonych przez użytkownika.

Przykład:


Sub ExampleGoSub
Dim iInputa As Single
Dim iInputb As Single
Dim iInputc As Single
    iInputa = Int(InputBox("Wprowadź pierwszą liczbę: ","Wprowadzenie liczby"))
    iInputb = Int(InputBox("Wprowadź drugą liczbę: ","Wprowadzenie liczby"))
    iInputc=iInputa
    GoSub SquareRoot
    Print "Pierwiastek kwadratowy z ";iInputa;" wynosi ";iInputc
    iInputc=iInputb
    GoSub SquareRoot
    Print "Pierwiastek kwadratowy z ";iInputb;" wynosi ";iInputc
    Exit Sub
SquareRoot:
    iInputc=sqr(iInputc)
    Return
End Sub

Prosimy o wsparcie!