Введение 8 Этапы создания Windowsприложения 8
Скачать 6.98 Mb.
|
5.6. Функция IIfВ языке существует еще один способ организации ветвления – функция IIf. Она имеет следующий синтаксис. IIf(Условное выражение, Значение1, Значение2) Функция проверяет истинность Условного Выражения. Если Условное Выражение имеет значение Истина (True), то функция IIf возвращает Значение1. Если Условное Выражение имеет значение Ложь (False), то функция IIf возвращает Значение2. В качестве примера опять рассмотрим задачу вычисления модуля числа. Исходное число обозначим a, а результат вычислений – b. b = IIf(a >= 0, a , -a) Значение, записанное в переменную b, будет зависеть от знака числа a. Если исходное число неотрицательное, то значение переменной b будет совпадать со значением переменной a. В противном случае значение переменной b будет противоположно по знаку значению переменной a, хотя и будет совпадать с ним по модулю. Таким образом, приведенный фрагмент программы позволяет найти модуль исходного числа с помощью функции IIf. 5.7. Оператор множественного ветвления ElseIfПри решении сложных задач часто возникает ситуация, когда определенное действие (или набор действий) нужно выполнить после проверки не одного, а нескольких условий. В таких случаях используют конструкцию множественного условного перехода. В Visual Basic 2005 эта конструкция реализуется с помощью оператора множественного ветвления ElseIf, имеющего следующий синтаксис. If Условное Выражение 1 Then Операторы 1 ElseIf Условное Выражение 2 Then Операторы 2 ElseIf Условное Выражение 3 Then Операторы 3 . . . ElseIf Условное Выражение N Then Операторы N Else Операторы Else End If Рассмотрим логику работы этого оператора. Если Условное Выражение 1 имеет значение Истина (True), то выполняется блок Операторы 1, значения остальных условных выражений не проверяются и соответствующие блоки не выполняются. Если Условное Выражение 1 имеет значение Ложь (False), то проверяется значение Условного Выражения 2. Если оно – Истина (True), то выполняется блок Операторы 2. Иначе проверяется значение Условного Выражения 3 и так далее. Если все условные выражения имеют значение Ложь (False), то выполняются операторы, стоящие в части Else, ели она существует (в Visual Basic 2005 часть Else является необязательной). После завершения работы оператора множественного ветвления выполнение программы продолжается с оператора, стоящего после ключевого словосочетания End If. Обратите внимание, что выполниться может только одна ветвь оператора, даже если истинными являются сразу несколько Условных Выражений. В таких случаях реализуется первая из подходящих ветвей оператора. В качестве примера рассмотрим программу, вычисляющую значение функции в некоторой точке x, заданной пользователем. Функция имеет следующий вид. Полный текст программы приведен в приложении 5. Первым шагом алгоритма является проверка области допустимых значений. Данная функция не имеет значения в точке x = 0. Потому первое условие анализирует значение аргумента функции. Если x попадает в область допустимых значений, то последовательно проверяется, к какой именно части принадлежит значение аргумента функции. В зависимости от этого вычисляется значение функции. If x = 0 Then MsgBox("Функция не определена") ElseIf x < -10 Then y = 2 * x MsgBox("y=" + Str(y)) ElseIf x < -1 Then y = x MsgBox("y=" + Str(y)) ElseIf x <= 1 Then y = 1 / x MsgBox("y=" + Str(y)) Else y = x ^ 2 MsgBox("y=" + Str(y)) End If |