If else windows script host

Урок 5 по VBScript: Условный оператор if. else и select. case

В данной статье мы с вами рассмотрим операторы vbs сценариев, а точнее условные операторы языка vbscript. Условные операторы vbs как и в многих других языках программирования позволяют управлять логикой выполнения кода. Давайте сразу к делу, в этой публикации мы рассмотрим следующие условные операторы языка vbscript: if…Then, if…Then…Else, if…Then…Elseif и оператор выбора Select…Case.

Ну, что же, давайте по порядку.

if…Then — Данная конструкция является самой простой. После ключевого слова if следует проверка условия, если оно истинно, и выполняется, то следует выполнение строки, которая идёт за ключевым словом Then:

if then

if…Then…Else — Данный vbs оператор по сравнению с предыдущей конструкцией имеет дополнительное ключевое слово Else. Данное выражение удобно в том случае, если нам нужно проверить условие, и в зависимости от результата проверки, выполнить то или иное действие. Тут, как и прежде, после ключевого слова if следует проверка условия, если оно истинно (выполняется), то следует выполнение строчки (строк) кода, что находится после ключевого слова Then, если же условие не выполняется, следует выполнение строки кода, что находится после Else:

if then else

if…Then…Elseif — Этот условный оператор vbs содержит в себе, фактически два оператора vbs (if…Then), то есть, сначала, как и прежде следует проверка условия, далее, если условие истинно, идёт выполнение кода после ключевого Then, если же условие проверки не выполняется (ложное), то идет новая проверка, после ключевого слова Elseif, далее могут следовать заново ключевые слова then и else:

if then elseif

Стоит помнить, что, для закрытия блока условного оператора vbs следует в конце прописывать ключевое слово Endif.

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

Тут в принципе всё просто, вначале мы находим дискриминант, результаты решения могут быть только три, если дискриминант равен нулю, то уравнение имеет только одно решение, если значение дискриминант больше нуля – то у уравнения есть два решения, ну и третий вариант – значение D отрицательное, в таком случае у уравнения нет решений, хотя… они есть, только мы получим комплексные числа.

Хорошо, теперь давайте рассмотрим условный оператор выбора vbs сценариев – select case:

Читайте также:  Open office windows phone

Select…Case — Конструкция Select…Case полезна в том случае, когда в результате математических вычислений и не только, мы знаем, какое значение переменной можем получить, и в зависимости от значения, нужно выполнить то или иное выражение. В отличии от if тут нет проверки условия, поэтому для решения того же квадратного уравнения мы не можем воспользоваться оператором vbs select…case, если только не прибегать к некоторым ухищрениям.

Select Case
Case
Case
Case

Case
Case Else
End Select

Давайте рассмотрим такой пример:

Параллельно с условными операторами vbs часто применяются логические операторы, наиболее популярны: And – И, Not – НЕТ и Or – ИЛИ.

Спасибо за внимание. Автор блога Владимир Баталий

VBS: If Else OR Case select

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщения 9

1 Тема от inock 2013-03-22 10:28:50 (изменено: inock, 2013-03-22 10:29:17)

  • inock
  • Участник
  • Неактивен
  • Рейтинг : [ 0 | 0 ]

Тема: VBS: If Else OR Case select

Господа, что-то никак не соображу. Вот эту конструкцию можно сделать через оператор Case select? Если да, то как? И есть ли смысл в такой переделке?

2 Ответ от Xameleon 2013-03-22 12:05:36

  • Xameleon
  • Разработчик
  • Неактивен
  • Рейтинг : [ 39 | 0 ]

    Re: VBS: If Else OR Case select

    А в чём причина использования InStr ? strTarif содержит варианты этих подстрок c дополнительным текстом ? Что то типа «AAAAA Брянск — Корпоративный мобайл 07 поминутно (гор/фед) (КОРП) (SS) BBBB» ?

    3 Ответ от inock 2013-03-22 12:11:12

    • inock
    • Участник
    • Неактивен
    • Рейтинг : [ 0 | 0 ]

    Re: VBS: If Else OR Case select

    strTarif содержит варианты этих подстрок c дополнительным текстом?

    4 Ответ от Xameleon 2013-03-22 12:21:54

    • Xameleon
    • Разработчик
    • Неактивен
    • Рейтинг : [ 39 | 0 ]

      Re: VBS: If Else OR Case select

      Как вариант, наверное так можно. По моему скромному мнению Case особо ситуацию не изменит.

      5 Ответ от sen52 2013-03-22 13:43:38

      • sen52
      • Разработчик
      • Неактивен
      • Рейтинг : [ 0 | 0 ]

      Re: VBS: If Else OR Case select

      Зачем создавать новый объект?! Лучше тогда уж через массив идти, наверное.

      6 Ответ от Xameleon 2013-03-22 14:46:21

      • Xameleon
      • Разработчик
      • Неактивен
      • Рейтинг : [ 39 | 0 ]

        Re: VBS: If Else OR Case select

        Согласен. Создание Dictionary мне тоже не нравится. Но если решать этот момент с массивами, то нужно либо 2 массива, либо двухмерный массив, либо одномерный, элементами которого являются массивы из двух элементов и т.п. ) Ну тоже не особо красиво.

        7 Ответ от Lucky 2013-03-22 15:22:31

        • Lucky
        • Разработчик
        • Неактивен
        • Рейтинг : [ 0 | 0 ]

        Re: VBS: If Else OR Case select

        Господа, а вопрос-то стоит про Case select, а рассматривается всё, кроме сути вопроса. Думаю ответом будет удобней оставить оператор If Else, т.к. для осуществления через Case select мешает необходимость функции InStr.

        8 Ответ от Xameleon 2013-03-22 15:40:03

        • Xameleon
        • Разработчик
        • Неактивен
        • Рейтинг : [ 39 | 0 ]

          Re: VBS: If Else OR Case select

          .. для осуществления через Case select мешает необходимость функции InStr.

          Да я бы не сказал, что особо мешает. Но как то криво, на мой взгляд.

          9 Ответ от Rumata 2013-03-22 16:15:05 (изменено: Rumata, 2013-03-22 16:17:00)

          • Rumata
          • Разработчик
          • Неактивен
          • Рейтинг : [ 31 | 0 ]

            Re: VBS: If Else OR Case select

            а вопрос-то стоит про Case select, а рассматривается всё, кроме сути вопроса

            Вы отчасти правы. Но важное не только ответить на вопрос, но дать правильное направление для дальнейших размышлений.

            inock, отвечая на Ваш вопрос

            Вот эту конструкцию можно сделать через оператор Case select?

            скажу: можно, но так делать не надо .

            Создайте список (через Dictionary или Array) и работайте с ним, циклически перебирая элементы списка. Это сократит количество кода, улучшит его понимание и дальнейшее сопровождение.

            Поэтому правильным будет полный отказ от длинного списка проверок (не важно — If Else или Case) в пользу списка — в Вашем случае один простой, одномерный массив.

            If else windows script host

            Вот мы и добрались до второго урока по VBScript (vbs). В этом уроке я расскажу про условный оператор if … else а так же про оператор выбора select … case. Это два очень полезных оператора без которых почти не обойтись при создании сценария vbs. Они позволяют выполнять определённые выражения при соблюдении определённого условия.

            Вступление

            В этом уроке мы пройдём:

            • Все виды конструкций условных операторов if … else
            • Логические операторы And, Not, Or, Xor, Imp, Eqv
            • Оператор выбора select … case
            • Совместное использование операторов

            Порой зачастую нам нужно задать логику сценарию. Сделать так, что если а = 10, то сделать это, а ели число другое, то сделать вот это. В таких ситуациях нам на помощь приходят эти операторы vbs.

            Условный оператор if … else

            Существуют три конструкции условного оператора if … else. Всё будет зависеть от требуемой сложности и задачи сценария VBScript.

            if then end if — Самый простой пример условия в сценарии vbs. После ключевого слова if идёт проверка условия. Если это условие соблюдается (истина по другому True), то выполняется выражение написанная после ключевого слова then. Если же условие не выполняется(ложь по другому False), то ничего не происходит.

            if then else end if — Это уже более сложная и функциональная конструкция условного оператора vbs. Тут всё как и первом примере, но если условие не совпадает, то выполняется выражение после ключевого слова else.

            if then elseif then ….. end if — уже более сложная конструкция. Тут уже при не выполнение условия (ложь) происходит ещё одна проверка условия и если оно совпадает, то выполняется выражение следуемая после второго ключевого слова Then. И так можно до бесконечности, что, конечно же очень удобно.

            Так же нужно отметить что последние две конструкции условного оператора должны закрываться End if, в противном случае вылезет ошибка.

            Теперь закрепим это примером:

            Как мы видим, в одну строку нам удастся прописать только условие первой конструкции. Если мы попытаемся прописать в одну строку другие два условия, то у нас выдаст ошибку. Для своего удобства я делаю отступ выражения Tab’ом. Так же можно прописывать несколько строк выражения.

            Логические операторы And, Not, Or, Xor, Imp, Eqv

            Так же в помощь условным операторам созданы логические операторы:

            • And — И. Оба условия должны быть верными — правдой (True)
            • Not — Отрицание. Условие должно быть ложным (False). При этом считается что условие выполняется (True)
            • Or — Или. Хотя бы одно из условий должно быть правдой (True)
            • Xor — Логическое исключение. Возвращает True (правда), если одно из условий False (Не правда)
            • Imp — импликация. Если первое условие правда (True), а второе ложь (False), то это условие в целом считается ложью (False). Во всех остальных случаях условие правда (True).
            • Eqv — эквивалентность двух выражений. Если два элемента одинаковы (True или False), то результат True

            Думаю они очень понятны и пример ниже не нуждается в объяснение:

            Условный оператор выбора select … case

            Теперь давайте разберём всё про условный оператор выбора select … case. Этот оператор может проверить переменную на соответствии с предполагаемыми значениями или переменными.

            Структура довольно проста:

            Select case
            case

            case

            ……….
            case else

            End Select

            По сути то же самое что и с if … else, но в данном случае немного урезан функционал оператора, а именно количество переменных которые мы можем проверить одновременно. End Select закрывает условие.

            Теперь закрепим это примером:

            Думаю с данным примером всё понятно и объяснять ничего не надо. Функцию MsgBox Вы можете вызывать в теле оператора, как и в первом примере. Заместо предпологаемого значения Вы можете поставить переменную («case a» вместо «case 10»).

            Совместное использование операторов

            Язык VBScript позволяет нам использовать условные операторы совместно друг с другом, применяя их даже в своём теле. Думаю, наглядней будет посмотреть пример:

            Тут Вы можете поэкспериментировать со значениями переменной «a».

            Вот и подошёл к концу второй урок по языку VBScript (vbs). Надеюсь, он оказался полезен и интересен Вам. До новых встреч на VBHack.Ru

            15 comments

            День добрый,
            есть один вопрос, как сделать чтобы кнопки или окошки выводили текст на русском языке?
            В вашем первом примере это «b не равно 10» и «ура!», а то у меня получаются крокозябрики какие-то.
            С английским проблем нет, пишу «b not equal 10» выводится корректно.
            спасибо за помощь.

            Для этого установите кодировку текста как Юникод.

            Читайте также:  Windows with double glass
Оцените статью