- Windows script do loop
- Цикл Do … Loop
- Цикл While … Wend
- Урок 7 по VBScript: Циклы do…loop и while…wend
- Оператор Do. Loop (Visual Basic) Do. Loop Statement (Visual Basic)
- Синтаксис Syntax
- Компоненты Parts
- Remarks Remarks
- Выйти Exit Do
- Пример Example
- Пример Example
- Пример Example
- Пример Example
- Do. Оператор Loop Do. Loop statement
- Синтаксис Syntax
- Примечания Remarks
- Пример Example
- См. также See also
- Поддержка и обратная связь Support and feedback
Windows script do loop
Приветствую всех читателей своего блога. Сегодня мы будем изучать циклы While … Wend и Do … Loop. При создании сценария VBScript они вам обязательно понадобятся. Эти два цикла позволяют выполнять одно и то же выражение множество раз, пока условие истина (True) или ложь (False).
В этом уроке мы пройдём:
- Цикл Do … Loop
- Применение оператора Exit Do
- Цикл While … Wend
Цикл Do … Loop
Цикл Do … Loop позволяет использовать себя с проверкой условий в начале и в конце цикла. Что бы проверять условие используются два ключевых слова: While и Until.
- While — цикл vbs будет выполняться до тех пор пока условие истина (True)
- Until — цикл выполняется до тех пор пока условие ложь (False). Как только условие станет истиной (True), произойдёт выход из цикла.
Давайте посмотрим на пример использования цикла Do … Loop с проверкой условия в начале и в конце:
В данном примере мы множество раз используем переменную «i». В каждом цикле, перед его завершением, к значению переменной прибавляется единица. После каждого примера мы опять обнуляем значение этой переменной, но можем этого не делать.
Первые два примера выполняют цикл пока i меньше 3. Как только i получает значение «3», происходит выход из цикла.
В двух последних примерах цикл выполняется пока i не станет больше 3.
Так же в циклах Do … Loop есть возможность экстренного выхода из него. Для этого используется оператор Exit Do. Он применяется при наличии условных операторов if … else и select … case.
Цикл While … Wend
Цикл While … Wend — это упрощённая версия предыдущего цикла языка VBScript. Пока условие истина (True) — цикл выполняется. Помимо этого в данном цикле есть возможность использовать логический оператор Not как и в условных операторах if … else.
Этот пример думаю разжёвывать не надо. До новых встреч!
Урок 7 по VBScript: Циклы do…loop и while…wend
В этой статье мы изучим следующие циклы vbs сценариев, а именно: do…loop и while…wend, также рассмотрим применение оператора exit…do.
Данный вид vbs циклов языка vbscript имеет немного другую логику чем, например цикл for, тут мы задаем не диапазон количества итераций, а условие. Например, нам нужно найти сумму чисел, причем количество значений неизвестно, зато, есть условие – сумма всех элементов не должна быть больше 1000. Проверка условия может проверяться как в начале, так и в конце заданного цикла vbs.
Хорошо, давайте проанализируем все vbs циклы по порядку.
Do…Loop — Данный цикл vbs можно использовать в двух вариантах: проверка до начала выполнения итерации (предусловие) и проверка после начала выполнения итерации (пост-условие). Если проверка выполняется в конце, то, как минимум один раз будет выполнена итерация. Давайте рассмотрим общий синтаксис:
Do [While | Until] условие
тело цикла
[Exit Do]
тело цикла
Loop
Do
тело цикла
[Exit Do]
тело цикла
Loop [While | Until] условие
В первом случае после ключевого слова Do идет проверка условия, как в условном операторе if, если используется ключевое слово while, то работа vbs цикла будет выполняться до тех пор, пока условие истинно (равно true), если используется слово until – то наоборот, как только условие станет истинным (равно true), произойдёт выход из цикла. Оператор Exit Do позволяет выйти из vbs цикла.
Второй вариант синтаксиса аналогичен первому лишь с той разницей, что проверка условия осуществляется в конце.
Хорошо, теперь давайте рассмотрим следующие 4 примера:
Первый пример
Второй пример
Третий пример
Четвёртый пример
Все четыре примера сценария vbscript заполняют массив MyArr числами от 0 до 9 используя vbs циклы Do…Loop в том или ином варианте.
while…wend — Конструкция while…wend является одной из vbs циклов, которая по своей природе очень проста:
While условие
тело цикла
Wend
Тут всё просто, если условие истинно – равно true, работа продолжается, иначе, происходит завершение работы.
Спасибо за внимание. Автор блога Владимир Баталий
Оператор Do. Loop (Visual Basic) Do. Loop Statement (Visual Basic)
Повторяет блок инструкций Boolean , пока условие находится True в состоянии или до тех пор, пока условие не станет True . Repeats a block of statements while a Boolean condition is True or until the condition becomes True .
Синтаксис Syntax
Компоненты Parts
Термин Term | Определение Definition |
---|---|
Do | Обязательный. Required. Запускает определение Do цикла. Starts the definition of the Do loop. |
While | Является обязательным, если используется параметр Until . Required unless Until is used. Повторите цикл, пока condition не будет False . Repeat the loop until condition is False . |
Until | Является обязательным, если используется параметр While . Required unless While is used. Повторите цикл, пока condition не будет True . Repeat the loop until condition is True . |
condition | Необязательный элемент. Optional. Выражение Boolean . Boolean expression. Если condition имеет значение Nothing , Visual Basic обрабатывает его как False . If condition is Nothing , Visual Basic treats it as False . |
statements | Необязательный элемент. Optional. Одна или несколько инструкций, повторяемых в, или до, condition имеют True . One or more statements that are repeated while, or until, condition is True . |
Continue Do | Необязательный элемент. Optional. Передает управление следующей итерации Do цикла. Transfers control to the next iteration of the Do loop. |
Exit Do | Необязательный элемент. Optional. Передает управление за пределы Do цикла. Transfers control out of the Do loop. |
Loop | Обязательный элемент. Required. Завершает определение Do цикла. Terminates the definition of the Do loop. |
Remarks Remarks
Используйте Do. Loop структуру, если нужно повторить набор инструкций неопределенное число раз, пока не будет удовлетворено условие. Use a Do. Loop structure when you want to repeat a set of statements an indefinite number of times, until a condition is satisfied. Если нужно повторить инструкции заданное число раз, то для. Обычно лучше подходит следующий оператор. If you want to repeat the statements a set number of times, the For. Next Statement is usually a better choice.
Можно использовать либо While , либо Until , чтобы указать condition , но не оба. You can use either While or Until to specify condition , but not both.
Тест можно выполнять condition только один раз, в начале или в конце цикла. You can test condition only one time, at either the start or the end of the loop. Если проверка выполняется в condition начале цикла (в Do операторе), цикл может не выполняться даже один раз. If you test condition at the start of the loop (in the Do statement), the loop might not run even one time. Если протестировать в конце цикла (в Loop операторе), цикл всегда выполняется по крайней мере один раз. If you test at the end of the loop (in the Loop statement), the loop always runs at least one time.
Условие обычно является результатом сравнения двух значений, но может быть любым выражением, результатом вычисления которого является логическое значение типа данных ( True или False ). The condition usually results from a comparison of two values, but it can be any expression that evaluates to a Boolean Data Type value ( True or False ). Сюда относятся значения других типов данных, например числовые типы, которые были преобразованы в Boolean . This includes values of other data types, such as numeric types, that have been converted to Boolean .
Можно вложить Do циклы, поместив один цикл в другой. You can nest Do loops by putting one loop within another. Можно также вкладывать различные виды управляющих структур друг в друга. You can also nest different kinds of control structures within each other. Дополнительные сведения см. в разделе вложенные структуры управления. For more information, see Nested Control Structures.
Эта Do. Loop структура обеспечивает большую гибкость, чем while. Оператор End While , так как он позволяет решить, следует ли завершать цикл при condition остановке True или при первом преобразовании True . The Do. Loop structure gives you more flexibility than the While. End While Statement because it enables you to decide whether to end the loop when condition stops being True or when it first becomes True . Он также позволяет тестироваться condition как в начале, так и в конце цикла. It also enables you to test condition at either the start or the end of the loop.
Выйти Exit Do
Оператор Exit Do может предоставить альтернативный способ выхода из Do…Loop . The Exit Do statement can provide an alternative way to exit a Do…Loop . Exit Do немедленно передает управление оператору, следующему за Loop оператором. Exit Do transfers control immediately to the statement that follows the Loop statement.
Exit Do часто используется после вычисления некоторого условия, например в If. Then. Else структуре. Exit Do is often used after some condition is evaluated, for example in an If. Then. Else structure. Может потребоваться выйти из цикла, если обнаруживается условие, которое делает ненужным или невозможным продолжение итераций, например ошибочное значение или запрос на завершение. You might want to exit a loop if you detect a condition that makes it unnecessary or impossible to continue iterating, such as an erroneous value or a termination request. Одно из них Exit Do — Проверка на наличие условия, которое может вызвать бесконечный цикл, то есть цикл, который может выполнять большое или даже бесконечное число раз. One use of Exit Do is to test for a condition that could cause an endless loop, which is a loop that could run a large or even infinite number of times. Exit Do Для экранирования цикла можно использовать. You can use Exit Do to escape the loop.
В можно включить любое количество Exit Do операторов в любом месте Do…Loop . You can include any number of Exit Do statements anywhere in a Do…Loop .
При использовании внутри вложенных Do циклов Exit Do передает управление за пределы самого внутреннего цикла и в следующий более высокий уровень вложенности. When used within nested Do loops, Exit Do transfers control out of the innermost loop and into the next higher level of nesting.
Пример Example
В следующем примере операторы в цикле продолжают выполняться до тех пор, пока index переменная не будет больше 10. In the following example, the statements in the loop continue to run until the index variable is greater than 10. Until Предложение находится в конце цикла. The Until clause is at the end of the loop.
Пример Example
В следующем примере While вместо предложения используется предложение, которое Until condition проверяется в начале цикла, а не в конце. The following example uses a While clause instead of an Until clause, and condition is tested at the start of the loop instead of at the end.
Пример Example
В следующем примере condition останавливается цикл, если index переменная больше 100. In the following example, condition stops the loop when the index variable is greater than 100. If Однако инструкция в цикле приводит к Exit Do остановке цикла, если переменная индекса больше 10. The If statement in the loop, however, causes the Exit Do statement to stop the loop when the index variable is greater than 10.
Пример Example
В следующем примере считываются все строки в текстовом файле. The following example reads all lines in a text file. OpenTextМетод открывает файл и возвращает объект StreamReader , считывающий символы. The OpenText method opens the file and returns a StreamReader that reads the characters. В Do. Loop условии Peek метод StreamReader определяет наличие дополнительных символов. In the Do. Loop condition, the Peek method of the StreamReader determines whether there are any additional characters.
Do. Оператор Loop Do. Loop statement
Повторяет блок операторов, пока условие имеет значение True или пока условие не примет значение True. Repeats a block of statements while a condition is True or until a condition becomes True.
Синтаксис Syntax
Do [< while | until > условие ] Do [< While | Until > condition ]
[ Операторы ] [ statements ]
[ Exit Do ] [ Exit Do ]
[ Операторы ] [ statements ]
CNAME Loop
Также можно использовать следующий синтаксис. Or, you can use this syntax:
Do Do
[ Операторы ] [ statements ]
[ Exit Do ] [ Exit Do ]
[ Операторы ] [ statements ]
Loop [ время | до > условие ] Loop [< While | Until > condition ]
Синтаксис оператора Do Loop состоит из следующих элементов. The Do Loop statement syntax has these parts:
Часть Part | Описание Description |
---|---|
установлен condition | Необязательно. Optional. Числовое выражение или строковое выражение, разрешаемое в значение True или False. Numeric expression or string expression that is True or False. Если Condition имеет значение NULL, условие считается ложным. If condition is Null, condition is treated as False. |
Операторы statements | Один или несколько операторов, которые повторяются, пока условие имеет значение true. One or more statements that are repeated while, or until, condition is True. |
Примечания Remarks
Любое количество операторов Exit Do можно поместить в любом месте оператора Do. Loop в качестве альтернативного способа выхода из оператора Do. Loop. Any number of Exit Do statements may be placed anywhere in the Do…Loop as an alternate way to exit a Do…Loop. Exit Do часто используется после оценки некоторого условия, например If. Затем, в этом случае оператор Exit Do передает управление оператору, следующему сразу за циклом. Exit Do is often used after evaluating some condition, for example, If…Then, in which case the Exit Do statement transfers control to the statement immediately following the Loop.
При использовании во вложенных циклах Do…Loop оператор Exit Do передает управление циклу, который находится на один уровень выше цикла оператора Exit Do. When used within nested Do…Loop statements, Exit Do transfers control to the loop that is one nested level above the loop where Exit Do occurs.
Пример Example
В этом примере показано использование операторов Do. Loop. This example shows how Do. Loop statements can be used. Внутренняя процедура Do. Loop выполняет циклы 10 раз, запрашивает пользователя, если он должен продолжить работу, устанавливает значение флага false при выборе значения нети преждевременно завершает работу с помощью оператора Exit Do . The inner Do. Loop statement loops 10 times, asks the user if it should keep going, sets the value of the flag to False when they select No, and exits prematurely by using the Exit Do statement. Выход из внешнего цикла происходит сразу после проверки значения флага. The outer loop exits immediately upon checking the value of the flag.
См. также See also
Поддержка и обратная связь Support and feedback
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.