Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_9_10_I.doc
Скачиваний:
3
Добавлен:
31.07.2019
Размер:
228.86 Кб
Скачать
        1. Оператор цикла с параметром For…Next

Используется в том случае, когда количество повторов заданного блока операторов известно заранее. Данная конструкция выглядит следующим образом:

For параметр цикла = начальное значение To конечное значение [Step шаг]

[блок операторов 1]

[Exit For]

[блок операторов 2]

Next [параметр цикла ]

Пара For, Next определяет начало и конец цикла.

Блок операторов 1 и блок операторов 2 между For и Next составляют тело цикла.

Параметр цикла - это арифметическая переменная, не может быть элементом массива или элементом пользовательского типа данных.

Начальное значение и шаг - это арифметические выражения (в частном случае - это константа или переменная). Определяют значения, которые принимает параметр цикла при работе программы (на первом шаге цикла параметр цикла равен начальному значению, на втором шаге цикла параметр цикла увеличивается на 1 (если шаг не задан) или шаг (если шаг задан).

Конечное значение - это арифметическое выражение (в частном случае - это константа или переменная). Определяет окончание работы цикла. Цикл выполняется до тех пор, пока значение параметра цикла не выйдет за границу конечного значения.

Exit For может находится в любом месте между For и Next, используется для досрочного прекращения выполнения цикла (управление передается оператору, следующему за Next). Применяется обочно в операторе условия, проверяющего условие выхода из цикла, например, в случае ошибки. Причем, если осуществляется досрочное прекращение цикла, то блок операторов 1 выполняется очередной раз, а блок операторов 2 - нет.

После завершения цикла управление передается оператору, следующему за Next.

Цикл выполняется, если выполнены следующие условия

  • шаг >=0 и начальное значение <= конечное значение;

или

  • шаг <=0 и начальное значение >= конечное значение.

При этом, эти условия проверяются перед каждым выполнением тела цикла.

Пример:

'Заполнение массива символами таблиц ASCII.

Private Sub Create_Table()

Dim I As Integer

Dim C(255) As String

For I = 0 To 255

C(I) = Chr(I)

Next I

End Sub

        1. Цикл Do…Loop

Применяется в том случае, когда число повторений заданного блока операторов (тело цикла) заранее неизвестно. Существует четыре разновидности данной конструкции.

При использовании первых двух цикл либо выполнится много раз, либо не выполнится вообще. Эти конструкции выглядят следующим образом:

Do [{While | Until} логическое выражение]

[блок операторов 1]

[Exit Do]

[блок операторов 2]

Loop

При использовании последних двух конструкций цикл будет выполнен хотя бы один раз. Эти конструкции выглядят следующим образом:

Do

[блок операторов 1]

[Exit Do]

[блок операторов 2]

Loop [{While | Until} логическое выражение]

В данных конструкциях :

Блок операторов 1 и блок операторов 2 между Do и Loop составляют тело цикла.

Логическое выражение - условие, значение которого проверяется и влияет на окончание выполнения тела цикла.

While определяет выполнение операторов, входящих в цикл, пока значение логического выражения равноTrue.

Until определяет выполнение операторов, входящих в цикл, пока значение логического выражения равно значению False.

Exit Do используется для досрочного прекращения выполнения цикла (см Exit For в разделе 3.8.3.3).

Положение "{While | Until} логическое выражение" в конструкции Do…Loop определяет, когда производится проверка условия - в начале цикла или в конце цикла. В первых двух конструкций, проверка условия производится в начале выполнения цикла, а в последних двух конструкциях - в конце выполнения цикла.

В цикле Do…Loop должен содержаться хотя бы один оператор, влияющий на изменение значения логического выражения, в противном случае произойдет "зацикливание" программы.

Пример. Программа определения максимального числа в последовательности, заканчивающейся 0.

'Первый вариант. Реализация с помощью цикла с предусловием

Private Sub Form_Load()

Dim max, x As Single, i As Integer

x = InputBox("Введите первое число")

max = x ' максимальное число = первому

Do While x <> 0 'пока число не равно 0

x = InputBox("Введите число")

If x > max Then 'если число больше максимального

max = x 'оно становится максимальным

End If

Loop 'конец цикла

MsgBox "Максимальное число = " + Str(max)

End Sub

'Второй вариант. Реализация с помощью цикла с постусловием

Private Sub Form_Load()

Dim max, x As Single, i As Integer

x = InputBox("Введите первое число")

max = x ' максимальное число = первому

Do

x = InputBox("Введите число")

If x > max Then 'если число больше максимального

max = x 'оно становится максимальным

End If

Loop Until x = 0 'выход из цикла, если число равно 0

MsgBox "Максимальное число = " + Str(max)

End Sub

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