Module
Contents
Index 🔎︎

# GoSub...Return Statement

Вызывает подпрограмму, указанную меткой, из подпрограммы или функции. Инструкция, которая идёт за меткой, выполняется до следующей инструкции 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