русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Операторы условного и безусловного перехода


Дата добавления: 2015-08-31; просмотров: 2805; Нарушение авторских прав


Операторы условного перехода — одни из самых важных и часто используемых элементов в языках программирования. Общий принцип их работы прост: проверяется соответствие каким-то условиям (истинность или ложность каких-либо выражений) и в зависимости от этого выполнение программы направляется по одной или другой ветви. В VBA предусмотрено два оператора условного перехода: If.. .Then и Select Case.

3.5.1. Оператор If... Then

Оператор if.. .Then— самый популярный у программистов. Полный его син­таксис выглядит так (необязательные части заключены в квадратные скобки):

If Условие Then

Команды1

[Elself УсловиеN Then

КомандыN

[Else

Команды2]

End If

При этом:

Условие— выражение, которое проверяется на истинность. Если оно ис­тинно, то выполняются Команды1, если ложно — Команды2,

□ УсловияN— дополнительные условия, которые также можно проверить. В случае, если они выполняются (выражение УсловияN истинно), то выполняются команды. Дополнительные условия (вместе с конструкцией Elseif) можно повторять неограниченное количество раз, но если вам нужно реализовать проверку на соответствие большому количеству условий, то правильнее будет использовать конструкцию select Case (см. разд. 3.5.2).

Оператор if.. .Then применяется:

□ когда нужно проверить на одно условие и в случае соответствия сделать какое-то действие:

If nTemperature < 10 Then

MsgBox "Надеть куртку"

End If

□ когда нужно сделать то же, что и в предыдущем примере, а в случае несоответствия выполнить другое действие:

If nTemperature < 10 Then

MsgBox "Надеть куртку"

Else

MsgBox "Надеть ветровку"

End If

□ когда нужно проверить на соответствие несколько условий (обратите внимание на использование логических операторов):



If (nTemperature < 10) And (bRain = True) Then

MsgBox "Надеть куртку и взять зонтик"

End If

□ в случае, когда проверка первого условия вернула False, нужно проверить на соответствие еще несколько условий (удобно использовать EiseIf):

If (bIGoInCar = True) Then

MsgBox "Одеться для машины"

Elself nTemperature < 10 Then

MsgBox "Надеть куртку"

Else

MsgBox "Можно идти в рубашке"

End If

В этом примере, поскольку biGoinCar-— переменная типа Boolean и сама по себе принимает значения True или False, первая строка может выглядеть так:

If biGoinCar Then . . .

Приведу некоторые замечания по использованию if.. .Then:

□ ключевое слово Then должно находиться в одной строке с if и условием. Если вы перенесете его на следующую строку, будет выдано сообщение об ошибке;

□ если разместить команду, которую нужно выполнить при истинности проверяемого условия, на одной строке с if и Then, то EndIf можно не писать:

If nTemperature < 10 Then MsgBox "Надеть куртку"

Если же вы используете несколько команд или конструкции Else/ElseIf, то End If в конце нужно писать обязательно, иначе возникнет синтаксическая ошибка;

□ для выражения if...Then настоятельно рекомендуется использовать отступы для выделения блоков команд. Иначе читать код будет трудно;

□ операторы if...Then можно вкладывать друг в друга:

If MyVar = 5 Then

MsgBox "MyVar =5"

If MyVar =10 Then

MsgBox "MyVar =10"

End If

End If

3.5.2. Оператор Select Case

Оператор Select Case идеально подходит для проверки одного и того же значения, которое нужно много раз сравнить с разными выражениями. Синтак­сис его очень прост:

Select Case Выражение

Case Условие1

Команды1

[Case УсловиеN

КомандыN]

[Case Else

Команды2]

End Select

Например:

Select Case sDayOfWeek

Case "Понедельник"

MsgBox "Салат из шпината"

Case "Вторник"

MsgBox "Салат из морской капусты"

Case Else

MsgBox "На этот день у нас ничего не предусмотрено"

End Select

Приведу некоторые замечания по поводу Select Case:

□ строка:

Case "Понедельник"

на самом деле означает:

Case sDayOfWeek = "Понедельник"

Такое равенство подразумевается по умолчанию. Но вы можете использовать и другой оператор сравнения или целый набор операторов, например:

Case 0 То 5, 15, Is > 55

Такое выражение можно перевести как "Если проверяемое выражение попало в диапазон от 0 до 5 включительно, или равно 15, или больше 55".

Слово Is при этом можно пропустить — компилятор VBA добавит это ключевое слово за вас. Несколько критериев в case перечисляются через запятые и объединяются так, как работает оператор Or, т. е. выполнение пойдет по этой ветви, если тестируемое значение будет удовлетворять хотя бы одному из критериев;

□ при использовании диапазона (о То 5) включаются и границы диапазона (в данном случае 0 и 5).

3.5.3. Оператор GoTo

Оператор GoTo— это оператор безусловного перехода, когда ход выполнения программы без проверки каких-либо условий перепрыгивает на метку в коде. Пример использования goto может выглядеть так:

GoTo EngineNotStarted

...

EngineNotStarted:

MsgBox "Едем на метро"

Здесь EngineNotStarted: — это метка, для нее используется имя (выбираемое по правилам назначения имен для переменных), которое оканчивается двоеточием. Эта метка может находиться как до, так и после оператора goto. В любом случае, при выполнении оператора GoTo ход выполнения "перепрыгнет" на указанную в GoTo метку.

Иногда использование GoTo очень удобно, например, когда нам нужно добиваться от пользователя ввода правильного значения неизвестное число раз. Однако использовать GoTo категорически не рекомендуется, потому что код становится трудночитаемым. Чаще всего GoTo можно заменить на конструкцию Do while.. .Loop (см. разд. 3.6) или на вызов функции из самой себя.

Задание для самостоятельной работы 3.2:



<== предыдущая лекция | следующая лекция ==>
Константы | Работа с операторами условного перехода


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.872 сек.