В этом примере программа зацикливается. Чтобы остановить бесконечный цикл, надо сделать аварийный выход с помощью клавиш Ctrl+Break.
Термин постусловие означает, что условие расположено после тела цикла. Цикл работает до тех пор, пока условие истинно. Цикл обязательно выполнится хотя бы один раз.
Задача. Рассмотрим действие цикла с постусловием на примере задачи Гаусса: подсчитаем сумму чисел от 1 до 100
Алгоритм решения задачи основывается на блок-схеме:
Private Sub Command1_Click()
'Цикл с постусловием
s = 0
n = 1
10:
s = s + n
n = n + 1
If n <= 100 Then GoTo 10
Print “s=”; s
End Sub
Начало подпрограммы
Комментарий
Начальное значение суммы равно нулю
Начальное значение счетчика чисел = 1
Метка 10: начинается цикл
Сумма увеличивается на n
Счетчик n увеличивается на 1
(шаг счетчика равен 1)
Проверка условия: если n<=100 идти в 10
(100 – конечное значение цикла)
Печать суммы
Конец подпрограммы.
Ответ: S = 5050
Спроектируем форму. Разместим новый объект– Frame (читается – фрейм, переводится рамка). Он визуально объединяет элементы одного типа, у нас – виды цикла. В свойстве Caption мы пишем "Цикл с постусловием" и т.п
Термин предусловие означает, что условие расположено перед телом цикла. Условие проверяется в начале цикла, причем указывается условие завершения цикла.
Задача:Подсчитаем сумму чисел от 1 до 100 по схеме с предусловием:
Private Sub Command2_Click()
'Цикл с предусловием
s = 0
n = 1
10:
If n > 100 Then GoTo 20
s = s + n
n = n + 1
GoTo 10
20:
Print “s=”; s
End Sub
Начало подпрограммы
Комментарий
Начальное значение суммы равно нулю
Начальное значение счетчика равно 1
Метка 10: начинается цикл
Проверка условия: если n > 100 идти в 20
(100 – конечное значение цикла)
Сумма увеличивается на n
Счетчик n увеличивается на 1 (шаг 1)
Переход к метке 10, к началу цикла
Метка 20
Печать суммы
Конец подпрограммы.
Ответ: S = 5050
В цикле с постусловием тело цикла выполняется хотя бы один раз, а в цикле с предусловием, может не выполниться ни разу. Например, если начальное значение n будет больше 100. Такой вид цикла применяется, если для программы существенную роль играет время выполнения.
Наличие операторов Goto в программе считается «дурным» тоном в программировании, поэтому в VB имеются другие виды операторов цикла.
Цикл со счетчиком For…To…Step…Next…
Это специальный оператор для организации циклов. Он применяется, если известно начальное и конечное значение счетчика, а также шаг его изменения.
Решениезадачи нахождения суммы чисел от 1 до 100, с применением этого вида цикла, выглядит так:
Private Sub Command3_Click()
‘Цикл со счетчиком
s = 0
For n = 1 To 100 Step 1
s = s + n
Next n
Print “s=”; s
End Sub
Программа этого цикла обходится без меток и без оператора GoTo. Она короче всех вышерассмотренных программ цикла. Счетчиком является переменная цикла – n. Она считает значения от 1 до 100 с шагом 1.
Рассмотрим оператор For…To по схеме:
1. Оператор For…To…Step…Next служит для организации циклических вычислений.
For…
To…
Step…
Next
Читается
Фо(р)
Ту
Стэп
Нэкст
Переводится
Для
До
Шаг
Следующий
2. Формат записи оператора для чисел: Это многострочный оператор.
For начальное значение переменной цикла To конечное значение пц Step шаг изменения пц
Тело цикла
Next имя переменной цикла
Если шаг равен 1, то слово Step можно не записывать.