Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Операторы перехода по условию






Оператор условного перехода If…Then…Else

Оператор If...Then...Else задает выполнение определенных действий в зависимости от значения выражения условие. Он может иметь строчный и блочный формат записи.

Строчный формат:

If условие Then [операторы_1] [Else операторы_2]

Блочный формат:

If условие Then

[операторы_1]

[ElseIf условие Then

[операторы_2]]

[ElseIf условие Then

[операторы_3]]

...

[ElseIf условие Then

[операторы_N]]

[Else

[операторы_N+1]]

End If

Здесь условие может быть как логическим, так и математическим выражением. Если значение выражения равно 0, то оно трактуется как false, все другие значения – true.

В основу этих операторов положен следующий принцип: если условие равно true, то выполняются операторы, находящиеся после Then. Если в строчной форме отсутствует необязательная ветвь Else, то операторы _1 не могут быть опущены, наличие хотя бы одного из них обязательно. В строчной форме все операторы должны находиться на одной строке и разделяться двоеточием, как показано в приведенном ниже примере:

Sub IfThenElse()

Dim b As Single

Dim c As Single

a = Range(" A1").Value

b = Range(" A2").Value

If b=0 Then MsgBox " Деление невозможно! " Else c=a/b: MsgBox " c=" & c

End Sub

 

Пример блочной формы:

Sub IfThenElse1()

Dim a As Single

Dim b As Single

Dim c As Single

a = Range(" A1").Value

b = Range(" A2").Value

If b=0 Then

MsgBox " Деление на ноль невозможно! "

Else

c = a / b

MsgBox " c=" & c

End If

End Sub

Некоторые замечания по использованию блочной формы If…Then... Else.

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

- Наличие End If обязательно, его отсутствие вызовет появление синтаксической ошибки.

- Рекомендуется использовать отступы для выделения блоков команд, иначе трудно будет читать код.

Инструкция If...Then...Else применяется в следующих случаях:

1). Нужно проверить на соответствие одному или нескольким условиям и в случае соответствия сделать какое-то действие:

Sub IfThenElse2()

Dim КурсРаб As String

If Range(" A5").Value = " Неуд" Or Range(" A5").Value = " " Then

MsgBox " Небходимо защитить курсовую работу"

End If

End Sub

2). Нужно проверить на соответствие одному или нескольким условиям и в случае соответствия сделать какое-то действие, а в случае несоответствия выполнить другое действие:

Option Compare Text

––––––––––––––––––––––––––––––––––––––––––––––––––

Sub IfThenElse3()

Dim КурсРаб As String

If Range(" a5").Value = " Неуд" Or Range(" a5").Value = " " Then

MsgBox " Необходимо защитить курсовую работу"

Else

MsgBox " К экзамену по информатике допущен"

End If

End Sub

Примечание

На уровне стандартного модуля, в котором находится процедура
IfThenElse3, помещена инструкция Option Compare Text. Инструкция Option Compare является директивой препроцессора и применяется на уровне модуля перед первой процедурой модуля для задания используемого по умолчанию способа сравнения строковых данных.

Формат инструкции:

Option Compare {Binary | Text | Database}

Инструкция Option Compare указывает способ сравнения строк Binary, Text или Database для модуля. Если модуль не содержит инструкцию Option Compare, то по умолчанию используется способ сравнения Binary. Инструкция Option Compare Binary задает сравнение строк на основе порядка сортировки, определяемого внутренним двоичным представлением символов. В Microsoft Windows порядок сортировки определяется кодовой страницей символов. В следующем примере представлен типичный результат двоичного порядка сортировки:

A < B < E < Z < a < b < e < z < Б < Л < Ш < б < л < ш

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

(A=a) < (B=b) < (E=e) < (Z=z) < (Б=б) < (Л=л) < (Ш=ш)

Инструкция Option Compare Database может использоваться только в Microsoft Access.

Использование Option Compare Text в модуле, в который включена процедура IfThenElse3, делает безразличным как записана информация в ячейку A5 – " Неуд", " неуд", " НЕУД", " Неуд", " НЕуд" и т.д.

В процедуре IfThenElse2 используется по умолчанию Option Compare Binary и, если ячейка A5 будет не пустой и будет содержать что-то, отличное от " Неуд", например, " неуд", то результатом проверки условия будет False и сообщения " Необходимо защитить курсовую работу" не будет.

3). В случае если первая проверка условия вернула False, но нужно проверить на соответствие еще нескольким условиям, удобно использовать ElseIf.

Пример:

Sub IfThenElse4()

If Range(" a6").Value > = 0.84 Then

MsgBox " Ваша оценка " & " " Отлично" "

ElseIf Range(" A6") < 0.84 And Range(" A6") > = 0.67 Then

MsgBox " Ваша оценка " " Хорошо" "

ElseIf Range(" A6") < 0.67 And Range(" A6") > 0.5 Then

MsgBox " Ваша оценка " " Удовлетворительно" "

Else

MsgBox " Ваша оценка " " Неудовлетворительно" "

End If

End Sub

Операторы If…Then можно вкладывать друг в друга. Процедуру IfThenElse4 можно переписать в другом виде, используя вложение операторов If…Then:

Sub IfThenElse5()

If Range(" a6").Value > = 0.84 Then

MsgBox " Ваша оценка " & " Отлично"

Else

If Range(" A6") < 0.84 And Range(" A6") > = 0.67 Then

MsgBox " Ваша оценка " & " " Хорошо" "

Else

If Range(" A6") < 0.67 And Range(" A6") > 0.5 Then

MsgBox " Ваша оценка " & " " Удовлетворительно" "

Else

MsgBox " Ваша оценка " & " " Неудовлетворительно" "

EndIf

End Sub






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.