Синтаксис оператора 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 и так далее до тех пор, пока камень не упадет на землю.