Оператор GoSub...Return
Извиква подпрограма, зададена с етикет на процедура или функция. Операторите, следващи етикета, се изпълняват до следващия оператор Return. След това изпълнението продължава с оператора, следващ GoSub.
Синтаксис:
виж Параметри
Параметри:
Sub/Function
операторен блок
Надпис
операторен блок
GoSub Етикет
Exit Sub/Function
Етикет:
операторен блок
Return
End Sub/Function
Операторът GoSub извиква локална подпрограма, зададена с етикет в рамките на процедура или функция. Името на етикета трябва да завършва с двоеточие (":").
Ако изпълнението стигне до оператор Return, който не е предшестван от GoSub, LibreOffice Basic показва съобщение за грешка. Използвайте Exit Sub или Exit Function, за да гарантирате, че изпълнението ще напусне процедурата или функцията преди следващия оператор Return.
Следващият пример илюстрира употребата на GoSub и Return. Чрез двукратно изпълняване на част от кода програмата изчислява квадратния корен на две числа, въведени от потребителя.
Пример:
Sub ExampleGoSub
Dim iInputa As Single
Dim iInputb As Single
Dim iInputc As Single
iInputa = Int(InputBox("Въведете първото число: ", "Въвеждане"))
iInputb = Int(InputBox("Въведете второто число: ", "Въвеждане"))
iInputc=iInputa
GoSub SquareRoot
Print "Квадратният корен на"; iInputa; " е "; iInputc
iInputc=iInputb
GoSub SquareRoot
Print "Квадратният корен на "; iInputb; " е "; iInputc
Exit Sub
SquareRoot:
iInputc=sqr(iInputc)
Return
End Sub