Шаг 25 - Инструкция GoSub...Return

Задает переход в подпрограмму и возвращение из нее в процедуру.

GoSub строка
...
строка
...
Return

Параметры

строка
Аргумент строка может быть любой меткой строки или номером строки.

Замечания
Допускается использование инструкций GoSub и Return в любом месте процедуры, но GoSub и соответствующая инструкция Return должны находиться в одной процедуре. Подпрограмма может содержать несколько инструкций Return. Первая обнаруженная инструкция Return приводит к передаче управления назад к инструкции, непосредственно следующей за последней выполненной инструкцией GoSub.
Невозможен вызов или завершение процедур Sub с помощью GoSub...Return.
Создание отдельных процедур для вызова из программы может обеспечить более структурированный подход, чем использование конструкций GoSub...Return.

Пример

В данном примере инструкция GoSub используется для вызова подпрограммы из процедуры Sub. Инструкция Return возвращает управление инструкции, следующей сразу после инструкции GoSub. Инструкция Exit Sub используется, чтобы управление не было случайно передано подпрограмме.

Sub GosubDemo()
Dim Num
' Запрашивает число у пользователя.
	Num = InputBox("Введите положительное четное число.")
' Вызывает подпрограмму только в том случае,
' если было введено положительное число.
	If Num > 0 Then GoSub MyRoutine	
	Debug.Print Num
	Exit Sub	' Запрещает передачу управления процедуре.
MyRoutine:
	Num = Num/2	' Выполняет деление.
	Return		' Возвращает управление инструкции,
End Sub			' следующей после инструкции GoSub.

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.