Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Yazyk_VBScript.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
150.27 Кб
Скачать

Примечание

Следует аккуратно задавать все три параметра цикла For...Next. Они должны быть согласованы: если приращение положительно, то начальное значение должно быть меньше или равно конечному значению; если приращение отрицательно, то конечное значение должно быть меньше или равно начальному значению. Если это не так, то цикл For...Next не выполняется ни одного раза.

Конструкция For Each...Next позволяет организовать цикл по элементам массива или по объектам некоторого набора (семейства) объектов (см. ниже в разделе), не зная заранее число элементов в массиве или число объектов в наборе. Синтаксис этой конструкции следующий:

For Each элемент In группа

операторы

Next

Параметр группа задает имя массива или имя набора объектов. Переменная элемент на каждом шаге цикла будет содержать ссылку на элемент массива или объект набора. Цикл завершает свое выполнение, как только завершится последовательный перебор всех элементов массива или объектов набора.

Следующий фрагмент кода подсчитывает количество элементов в массиве:

Dim Ar(10)

...

Number = 0

For Each j In Ar

Number = Number + 1

Next

Document.Write "Число элементов массива равно "  Number

Результатом работы данного сценария будет строка в документе:

Чиcло элементов массива равно 11

Однако как ввести объект Document в программу?

В следующем примере используется набор forms для организации цикла по числу форм в документе. Внутренний цикл по элементам набора elements формы печатает в документ значения свойства value всех элементов формы.

Пример 9.4. Отображение всех элементов форм документа

<BODY>

<FORM name="frm1">

<INPUT TYPE="checkbox" NAME="check1" value="Флажок"> Флажок

</FORM>

<FORM name="frm2">

<INPUT TYPE="checkbox" NAME="check2" value="Флажок1"> Флажок1

</FORM>

<P>

<SCRIPT language="VBScript">

For Each i In Document.forms

Document.write "<p> Форма "  i.name  ":"

For Each j In i.elements

Document.write "<p> Элемент: "  j.value

Next

Document.write "<HR>"

Next

</SCRIPT>

</BODY>

На каждом шаге внешнего цикла переменная i содержит ссылку на форму, созданную тэгом <FORM>. Во внутреннем цикле осуществляется перебор элементов формы. Ссылка на набор elements формы указывается в качестве параметра i.elements цикла For Each. Переменная j внутреннего цикла последовательно ссылается на элементы формы, поэтому конструкция j.value дает значение параметра value элемента формы. Результат отображения страницы в окне браузера показан на рис. 9.13.

Обычно любой оператор цикла выполняется столько раз, сколько определено его параметрами, но иногда необходимо прервать выполнение цикла, например, в результате выполнения какого-либо условия. Для этих целей в VBScript существует несколько операторов Exit безусловного выхода из конструкций цикла:

  • Exit Do осуществляет безусловный выход из операторов группы DO... Loop

  • Exit For осуществляет безусловный выход из операторов For. . .Next и For Each...Next

Их можно использовать в любом месте в теле цикла, но обычно они используются совместно с операторами условиями.

Рис. 9.13. Отображение информации по элементам форм документа

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]