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

 

Расширить возможность всех условных операторов можно с помощью логических выражений, являющихся полными аналогами условий (см. раздел «Математические и логические операторы»). Такие условия принято называть составными. Применение составных и вложенных условий позволяет решать самые запутанные задачи.

 

Контрольные вопросы для самопроверки

  1. Какие условные операторы вы знаете?
  2. В чем вы видите разницу операторов «If» и «Select Case»?
  3. Какие формы записи оператора «If» вы знаете?
  4. Какие формы записи оператора «Select Case» вы знаете?
  5. Что такое «вложенное» и «составное условие»? Приведите примеры.
  6. Составьте условие для проверки принадлежности точки А(x,y) приведенной ниже фигуре. Какими условиями вы пользовались и почему?