Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie_Metod_2009_VVYeD.doc
Скачиваний:
6
Добавлен:
06.12.2018
Размер:
1.14 Mб
Скачать

Лабораторная работа 3. Операторы цикла в программах на vbscript

3.1 Цель работы

Познакомиться с операторами цикла Do While…Loop, Do Until…Loop, Do…Loop While, Do…Loop Until, For…Next, While…Wend, понять специфику работы каждого из них и научиться использовать их в программах на VBScript.

3.2 Теоретические сведения

Часто в программе требуется выполнение идентичных действий несколько раз подряд. Для реализации таких процессов в программировании существует понятие как цикл. Цикл состоит из оператора цикла и тела цикла. Оператор цикла – это его управляющая конструкция. Она определяет, сколько раз должны выполниться операторы, записанные в тело цикла, либо при каких условиях тело цикла должно повториться ещё раз. Циклы бывают детерминированные (определенные) и недетерминированные. Если количество повторений заранее известно (до входа в цикл), то цикл называется детерминированным. Тип цикла определяется его оператором. Иными словами, по оператору часто называют весь цикл.

Язык VBScript позволяет использовать несколько типов циклов. Рассмотрим некоторые из них подробнее.

For…Next (цикл со счетчиком)

Данная конструкция служит для повтора тела цикла заданное число раз.

Общий вид данной конструкции выглядит следующим образом:

For <переменная>=<начало> to <конец> [Step <шаг>] заголовок цикла

<оператор>

... тело цикла

[<оператор>]

Next

<переменная> - переменная (параметр) цикла целого типа

<начало> - начальное значение параметра цикла

<конец> - конечное значение параметра цикла

<оператор> - оператор тела цикла

<шаг> - шаг цикла, то есть то значение, на которое увеличивается параметр цикла при каждом повторе. Шаг цикла по умолчанию равен 1.

Число выполнений цикла можно определить по следующей формуле:

(<конец>-<начало>)/<шаг>

Замечание: При положительном шаге, конечное значение параметра цикла должно быть больше, чем начальное.

Пример использования цикла ForNext:

Задача: требуется вывести на экран последовательность от 1 до 20 с шагом два.

Текст программы:

For x=1 To 20 Step 2

s=s&vbCrLf&x

Next

MsgBox "Последовательность от 1 до 20 с шагом 2: " & s

While … Wend

Этот тип цикла служит для того, чтобы повторять тело цикла неизвестное заранее количество раз. Количество повторений определяет ситуация, возникающая во время выполнения тела цикла.

Общий вид данной конструкции выглядит следующим образом:

While <логическое выражение> заголовок цикла

<оператор>

... тело цикла

[<оператор>]

Wend

<логическое выражение> - это простое или сложное условие, или логическая константа (true или false).

Пока <логическое выражение> возвращает true, тело цикла выполняется, а как только <логическое выражение> возвратит false, то работа продолжится со следующего оператора за служебным словом Wend. Естественно, если в процессе работы программы условие никогда не станет ложным, то цикл будет повторяться бесконечно, то есть программа зависнет. Поэтому надо обязательно предусмотреть способ выхода из цикла.

Пример использования цикла WhileWend:

Задача: Пользователь вводит число, если оно меньше 20 выводить его квадрат, если больше или равно то закончить выполнение сценария.

Текст программы:

option explicit

Dim Number 'вводимое число

Number=CInt(InputBox("Введите число","Диалоговое окно"))

While Number<20 'условие

MsgBox "Квадрат число: " & Number & " равен " & (Number*Number)

Number=CInt(InputBox("Введите число","Диалоговое окно"))

Wend

Замечание: Цикл, поведение которого определяется логическим выражением, проверяемым перед входом в цикл, называется циклом с предусловием.

Do While… Loop

Этот тип цикла служит для того, чтобы пока выполняется условие повторять тело цикла (проверка условия в начале цикла).

Общий вид данной конструкции выглядит следующим образом:

Do While <логическое выражение> заголовок цикла

<оператор>

... тело цикла

[<оператор>]

Loop

<логическое выражение> - это простое или сложное условие, или логическая константа (true или false).

Пока <логическое выражение> возвращает true, тело цикла выполняется, а как только <логическое выражение> возвратит false, то работа продолжится со следующего оператора за служебным словом Loop.

Пример использования цикла Do While…Loop:

Задача: Пользователь вводит число, если оно меньше 20 выводить его квадрат, если больше или равно то закончить выполнение сценария.

Текст программы:

option explicit

Dim Number 'вводимое число

Number=CInt(InputBox("Введите число","Диалоговое окно"))

Do While Number<20 'условие

MsgBox "Квадрат число: " & Number & " равен " & (Number*Number)

Number=CInt(InputBox("Введите число","Диалоговое окно"))

Loop

Как видно из описания цикла, он полностью идентичен циклу While Wend

Do ... Loop While

Этот тип цикла служит для того, чтобы повторять тело цикла пока выполняется условие (проверка условия в конце цикла).

Общий вид данной конструкции выглядит следующим образом:

Do

<оператор>

... тело цикла

[<оператор>]

Loop While <логическое выражение>

<логическое выражение> - это простое или сложное условие, или логическая константа (true или false).

Вначале выполняется тело цикла, расположенное после ключевого слова Do, а затем проверяется <логическое выражение>. Пока <логическое выражение> возвращает true, тело цикла выполняется, а как только <логическое выражение> возвратит false, то работа продолжится со следующего оператора после Loop While <логическое выражение>.

Пример использования цикла Do … Loop While:

Задача: Пользователь вводит число, если оно меньше 20 выводить его квадрат, если больше или равно то закончить выполнение сценария.

Текст программы:

option explicit

Dim Number 'вводимое число

Number=CInt(InputBox("Введите число","Диалоговое окно"))

Do

MsgBox "Квадрат число: " & Number & " равен " & (Number*Number)

Number=CInt(InputBox("Введите число","Диалоговое окно"))

Loop While Number<20 'условие

Замечание: Цикл, поведение которого определяется логическим выражением, проверяемым после выполнения тела цикла, называется циклом с постусловием.

Do Until... Loop

Этот тип цикла служит для того, чтобы пока условие не выполняется повторять тело цикла (проверка условия содержится в начале цикла).

Общий вид данной конструкции выглядит следующим образом:

Do Until <логическое выражение> заголовок цикла

<оператор>

... тело цикла

[<оператор>]

Loop

<логическое выражение> - это простое или сложное условие, или логическая константа (true или false).

Пока <логическое выражение> возвращает false, тело цикла выполняется, а как только <логическое выражение> возвратит true, то работа продолжится со следующего оператора за служебным словом Loop.

Пример использования цикла Do Until…Loop:

Задача: Пользователь вводит число, если оно меньше 20 выводить его квадрат, если больше или равно то закончить выполнение сценария.

Текст программы:

option explicit

Dim Number 'вводимое число

Number=CInt(InputBox("Введите число","Диалоговое окно"))

Do Until Number>=20 'условие

MsgBox "Квадрат число: " & Number & " равен " & (Number*Number)

Number=CInt(InputBox("Введите число","Диалоговое окно"))

Loop

Do... Loop Until

Этот тип цикла служит для того, чтобы повторять тело цикла пока условие не выполняется (проверка условия содержится в конце цикла).

Общий вид данной конструкции выглядит следующим образом:

Do

<оператор>

... тело цикла

[<оператор>]

Loop Until <логическое выражение>

<логическое выражение> - это простое или сложное условие, или логическая константа (true или false).

Вначале выполняется тело цикла, а затем проверяется <логическое выражение>. Пока <логическое выражение> возвращает false, тело цикла выполняется, а как только <логическое выражение> возвратит true, то работа продолжится со следующего оператора после Loop Until <логическое выражение>.

Пример использования цикла Do …Loop Until:

Задача: Пользователь вводит число, если оно меньше 20 выводить его квадрат, если больше или равно то закончить выполнение сценария.

Текст программы:

option explicit

Dim Number 'вводимое число

Number=CInt(InputBox("Введите число","Диалоговое окно"))

Do

MsgBox "Квадрат число: " & Number & " равен " & (Number*Number)

Number=CInt(InputBox("Введите число","Диалоговое окно"))

Loop Until Number>=20 'условие

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