Оператор безусловного перехода. Принятие решений: Select Case

Принятие решений: Select Case

Если вам предстоит проверить данные на множество значений, для каждого из которых надо выполнить какое-то особое действие, можно использовать множество операторовIf или один Select Case.

Далее приведен пример использования Select Case - в зависимости от введенного имени программа здоровается с пользователями по-разному.

Dim str_UserName As String

str_UserName = InputBox("Введите имя пользователя")

Select Case str_UserName

Case "Александр"

MsgBox ("Привет")

Case "Сергей"

MsgBox ("Здравствуй")

Case "Николай"

MsgBox ("Добро пожаловать")

Case Else

MsgBox ("Не существует такого пользователя")

End Select

После Select Case указано имя переменной, анализ которой осуществляется. Дальше расположено произвольное количество вариантов - каждый вариант после ключевого слова Case. Если не выполнен ни один из Case - выполняется Case Else. В конце этой конструкции находится оператор End Select.

В VBA есть один оператор, которым не рекомендуется пользоваться при написании программ. Это оператор безусловного перехода GoTo. Он позволяет передать управление в определенное место программы, заданное номером строки или меткой. Меткой строки может быть любое слово (подчиняющееся правилам именования переменных), после которого следует двоеточие.

Например, цикл с постусловием можно создать таким способом:

Dim num_Cycle

num_Cycle = 0

Cycle_Start:

num_Cycle = num_Cycle + 1

MsgBox ("Проход цикла номер: " + Str(num_Cycle))

If num_Cycle < 5 Then GoTo Cycle_Start

Здесь мы создаем метку Cycle_Start, которая означает начало цикла. После этого увеличиваем на единицу переменную, которая является счетчиком цикла, выводим ее в окне сообщения. В последней строке мы проверяем переменную. Если она меньше 5 - команда GoTo Cycle_Start передает управление на соответствующую метку. В такой простой конструкции, как наша, особенных сложностей в чтении кода не видно. Но стоит программе хотя бы немного увеличиться, несколько подобных циклов (особенно - вложенных, а еще хуже - использующих номер строки для перехода) превратят ее в сложный для чтения и правки текст.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: