Студопедия

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

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

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






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Операторы перехода по условию






    Оператор условного перехода 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 :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.