Выбрать главу

Синтаксис оператора Do… Loop:

Do

операторы

операторы

……..

Loop

Строки операторов между Do и Loop называются телом цикла.

Оператор Do… Loop While

Добавьте в ваш проект еще 4 кнопки и выполните в пошаговом режиме программы с вариантами оператора Do 1–4, которые я привел ниже. Вы увидите, что все 4 варианта делают одно и то же и они очень похожи. Вопрос о том, зачем нужно целых 4 похожих варианта, рассмотрим чуть позже. Уверяю, они все нужны.

Составим с использованием 1 варианта оператора Do программу решения задачи о печати чисел 3 5 7 9 из предыдущего параграфа. Для того, чтобы точно определить работу этого варианта оператора Do, приведем ее параллельно с 1 вариантом программы решения этой задачи из того же параграфа. Объяснением любого оператора в правом столбце является оператор, стоящий в той же строчке в левом столбце.

While переводится "Пока".

Значит, Loop While f <= 9 понимать следует так: "Возвращайся к метке Do, пока f <= 9".

Порядок работы обеих программ совершенно одинаков, так что можно считать слово Do заменой метки m, а конструкцию Loop While f <= 9 считать заменой оператора If f <= 9 Then GoTo m.

Синтаксис оператора Do…. Loop While:

Do

операторы

операторы

…………..

Loop While условие продолжения работы цикла

Оператор Do… Loop Until

Until переводится "До тех пор, пока".

Значит, Loop Until f > 9 понимать следует так: "Возвращайся к метке Do до

тех пор, пока не выполнится условие f > 9".

Синтаксис оператора Do… Loop Unticlass="underline"

Do

операторы

операторы

…………..

Loop Until условие завершения работы цикла

Оператор Do While… Loop

Do While f <= 9 понимать следует так: "Пока f <= 9 выполняй нижестоящие

операторы вплоть до Loop".

Синтаксис оператора Do While…. Loop:

Do While условие продолжения работы цикла операторы операторы

операторы

операторы

…………..

Loop

Оператор Do Until… Loop

Do Until f > 9 понимать следует так: "Выполняй нижестоящие операторы вплоть до Loop, до тех пор, пока не выполнится условие f > 9".

Синтаксис оператора Do Until…. Loop:

Do Until условие завершения работы цикла операторы операторы

операторы

операторы

…………..

Loop

Типичная ошибка начинающих — небрежное обращение со знаками сравнения. Многие не видят большой разницы в том, как записать — While f<=9 или While f<9, а затем, «недополучив» результат, удивляются, почему. И здесь лучшим средством для понимания является отладочный режим. Попробуйте ошибочный вариант программы с While f<9 выполнить в пошаговом режиме.

Задача: Компьютер предлагает человеку ввести слово, после чего распечатывает это слово, снабдив его восклицательным знаком. Затем снова предлагает ввести слово и так до тех пор, пока человек не введет слово "Хватит". Распечатав его с восклицательным знаком, компьютер отвечает "Хватит так хватит" и заканчивает работу.

Придумаем строковую переменную, в которую человек будет с клавиатуры вводить слово. Назовем ее Slovo. Выберем подходящий вариант оператора Do, это будет 2-й, и пишем программу:

Dim Slovo As String

Private Sub Command1_Click()

   Do

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

   Debug.Print Slovo; "!"

   Loop Until Slovo = "Хватит"

   Debug.Print "Хватит так хватит"

End Sub

Задание 42: Усложним эту задачу. Пусть компьютер перед распечаткой каждого слова ставит его порядковый номер.

Задание 43–44: Выполнить с применением оператора Do задания 38 и 41 из предыдущего раздела.

Задание 45: Если камень бросить горизонтально со 100-метровой башни со скоростью v=20m/c, то его расстояние от башни по горизонтали s будет выражаться формулой s=vt, где t — время полета камня в секундах. Высота над землей h будет выражаться формулой h=100 — 9.81t2/2. Вычислять и печатать t, s и h для t = 0, 0.2, 0.4, 0.6 и так далее до тех пор, пока камень не упадет на землю.