Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лек 09 VB Окна сообщений.doc
Скачиваний:
5
Добавлен:
09.11.2019
Размер:
115.2 Кб
Скачать

Оператор перехода goto и метки

Метка представляет собой идентификатор с расположенным за ним символом двоеточия (:). Метками помечают какой-либо оператор, на который в дальнейшем должен быть осуществлен безусловный переход.

Безусловная передача управления на метку производится при помощи оператора GoTo.

Оператор GoTo может осуществлять переход (адресоваться) к меткам, обязательно расположенным в одном с ним теле функции. Синтаксис оператора GoTo:

GoTo метка;

метка : оператор;

Данный оператор - очень мощное и небезопасное средство управления поведением программы. Использовать его нужно крайне осторожно, так как, например, "прыжок" внутрь цикла (обход кодов инициализации) может привести к трудно локализуемым ошибкам. С помощью операторов If и GoTo можно реализовать любой алгоритм, но читать и проводить отладку кода перенасыщенного операторами перехода и метками чрезвычайно трудно. Поэтому в настоящее время использование оператора перехода считается плохим стилем программирования.

Рассмотрим пример применения оператора GoTo, в котором окно ввода выводится на экран до тех пор, пока пользователь не введёт число.

Private Sub txtN_Validate (Cancel As Boolean)

Dim sMessage As String текст сообщения

Dim sTitle As String заголовок окна

sMessage = "Введите числовое значение переменной Х”

sTitle = ”Ошибка” ‘ определение значения заголовка окна ввода

Begin: ‘ метка

If Not IsNumeric ( txtN ) Then ‘ если текстовое поле txtN содержит нечисловое значение

txtN = InputBox ( sTitle , sMessage , 5 )

отображает окно ввода и возвращает строку, введённую пользователем

GoTo Begin ‘ переход на метку Begin

End If

End Sub

Как только выполнение программы достигнет оператора GoTo, управление будет передано оператору, следующему за меткой Begin.

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

Вообще говоря, использование структурного и объектно-ориентированного подходов к программированию позволяет полностью отказаться от применения операторов безусловного перехода. Однако на практике часто бывают случаи, когда GoTo значительно упрощает код программы.