4.
ПРИНЯТИЕ
РЕШЕНИЙ
Большинство операторов являются операторами присваивания, но есть и другие операторы, предназначенные для решения более сложных задач. Они известны как управляющие.
К управляющим операторам относятся, в частности, условные операторы. Они используются для выполнения различных фрагментов программы в зависимости от выполнения некоторого условия. Существуют два типа условных операторов:
«If» и «Select Case»
4.1.
Оператор If
Для проверки истинности условий в Visual Basic предназначены два типа операторов «If» – однострочный и блочный (см. табл. 8).
Таблица 8
Синтаксис различных форм оператора «If»
|
Блочная |
Однострочная |
Полная |
If condition Then Command1 Command2 ... Commandn Else Command01 Command02 ... Commandm End if |
If condition Then command1 Else
command2 |
Краткая |
If condition Then Command1 Command2 ... Commandn End if |
If condition Then command1 |
Однострочный оператор «If» состоит из одной строки и используется для выполнения только одной из двух команд в зависимости от условия.
Здесь condition представляет собой любое выражение или функцию, истинность которой будет оцениваться:
· Условие, построенное с помощью операторов сравнения.
· Переменная логического типа.
· Любая функция логического типа.
«Command1» – команда, которую необходимо выполнить, если «condition» будет иметь значение «True» (истина). А «command2» – команда, выполняющаяся при «condition» равным «False» (ложь). При этом обе команды никогда не выполнятся одновременно!
Если возникает необходимость выполнить не одну, а сразу несколько команд, то пользуются блочным оператором «If» (см. табл. 8). Принцип действия блочного оператора условия полностью аналогичен работе однострочного оператора. Единственное отличие – наличие в каждом из блоков нескольких команд.
Помимо этого существует краткая форма оператора «If». Она заключается в том, что блок «Else» является необязательным (см. табл. 8). При этом принцип работы остается неизменным. При «condition» равным «False» управление будет передано следующему оператору, стоящему следом за оператором «If».
Если нужно проверить какое-либо условие при выполнении другого условия, используют вложенные операторы «If»:
If condition Then
If condition Then
Command1
End If
End If
4.2. Оператор «Select Case»
Принять решение можно и с помощью оператора «Select Case». Он позволяет выбрать одну из нескольких групп команд в зависимости от значения некоторой переменной:
Select Case TestValue
Case Value1
Command1
Case Value2
Command2
Case Else
Command3
End Select
Вначале в операторе «Select Case» указывается выражение, значение которого будет проверяться «TestValue». Затем в наборе операторов «Case» указываются возможные значения (Value1 и др.). Если вычисленное значение выражения совпадет со значением, указанным в конкретном операторе «Case», выполнятся команды, следующие за этим оператором. Операторы «Case» будут перебираться последовательно, до первого совпадения. Если не произойдет ни одного совпадения, то выполнятся команды, стоящие после оператора «Case Else», который обязательно должен стоять последним в списке. Тем не менее, этот оператор является необязательным, и при отсутствии совпадений работа будет передана следующему, ниже стоящему оператору.
В операторе «Select Case» можно использовать и операторы сравнения. В этом случае необходимо использовать ключевое слово «Is»:
Select Case TestValue
Case Is < Value1
Command1
Case Is >= Value2
Command2
End Select
или можно использовать диапазоны значений (ключевое слово «To»):
Select Case TestValue%
Case 6 To 10
Command1
Case 100 To 200
Command2
End Select
Расширить возможность всех условных операторов можно с помощью логических выражений, являющихся полными аналогами условий (см. раздел «Математические и логические операторы»). Такие условия принято называть составными. Применение составных и вложенных условий позволяет решать самые запутанные задачи.
Контрольные
вопросы для
самопроверки