Съдържание

# Оператор GoSub...Return

Извиква подпрограма, зададена с етикет във вътрешността на блок Sub или Function. Операторите, следващи етикета, се изпълняват до следващия оператор Return. След това изпълнението продължава с оператора, следващ GoSub.

### Синтаксис:

    GoSub label[:]

### Параметри:

label: идентификатор на ред, който показва къде да се продължи изпълнението. Обхватът на етикета съвпада с този на подпрограмата, към която принадлежи.

Операторът GoSub извиква локална подпрограма, зададена с етикет в рамките на процедура или функция. Името на етикета трябва да завършва с двоеточие (":").

      Sub/Function foo
          ' оператори
          GoSub label
          ' оператори
          Exit Sub/Function
      label:
          ' оператори
          Return
      End Sub/Function

Ако изпълнението стигне до оператор 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

Теми, свързани с показаната

Оператор GoTo

Оператори On...GoSub и On...GoTo