Использование логических операций в условиях
Использование логических операций в условных выражениях может быть более элегантной альтернативой использованию ElseIf и вложенных If ... Then, когда нужно выполнить лишь одну ветвь пути, определяемого множеством условий.
Взгляните снова на последний фрагмент программного кода из предыдущего раздела. Ту же задачу можно выполнить с помощью лишь одного оператора If... Then, как здесь:
>If sngGPA > 3.5 And sngUnits > 10 Then
MsgBox "Вы в поощрительном списке деканата!"
End If
Условные выражения с логическими операциями не помогут, когда необходимо использовать несколько ветвей пути решений. Попробуйте с помощью логических операций свести к примеру, подобному приведенному выше, следующий случай:
>If sngGPA > 3.5 Then
If sngUnits > 10 Then
MsgBox "Вы в поощрительном списке декана!"
Else
MsgBox "Неплохо для прогульщика!"
End If
End If
Мне на ум приходит только одно решение, все равно требующее двух операторов
If... Then, хотя и не вложенных:
>If sngGPA > 3.5 And sngUnits > 10 Then
MsgBox "Вы в поощрительном списке декана!"
End If
If sngGPA > 3.5 And sngUnits <= 10 Then
MsgBox " Неплохо для прогульщика!"
End If
Использование операторов Select Case
Операторы If. . .ElseIf и вложенные If. . .Then идеально подходят для принятия решений на основе проверки некоторого числа разных выражений. Если же приходится проверять одно и то же значение, сравнивая с различными выражениями, то самым подходящим обычно оказывается оператор Select Case. Синтаксис этого оператора следующий:
>Select Case значение
Case критерий!
(операторы, выполняемые, когда значение удовлетворяет критерий!)
Case критерий2
(операторы, выполняемые, когда значение удовлетворяет критерий2)
... ' дополнительные операторы Case
Case Else ' необязательный
(операторы, выполняемые, когда значение
не удовлетворяет ни одному из приведенных критериев)
End Select