Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
409
Добавлен:
18.09.2019
Размер:
377.34 Кб
Скачать

Циклы с неявно заданным числом повторений

Достаточно часто при программировании задач приходится выполнять расчеты, повторяющиеся многократно при различных значениях исходных данных. Выход из циклов, реализующих эти расчеты, происходит при достижении некоторого условия, но сказать заранее (до исполнения программы), на каком шаге это произойдет, заранее невозможно. Такие циклы называются циклами с неявно заданным числом повторений и реализуются с помощью операторов цикла Do...Loop.

Для оператора Do...Loop возможны 5 вариантов:

0-й вариант

Do … Loop

1-й вариант

Do … Loop While

2-й вариант

Do … Loop Until

3-й вариант

Do While....... Loop

4-й вариант

Do Until ........ Loop

Do можно перевести как “делай”,

Loop – “петля” или “возврат назад”,

While – “пока”,

Until – “до тех пор пока”.

Синтаксис оператора

Комментарии

Пример 1

Вывести через InputBox список фамилий на рабочий лист

Блок-схема

Do

операторы

операторы

Loop

Строки операторов между Do и Loop являются телом цикла и выполняются бесконечное число раз. Цикл прерывается только с клавиатуры (нажатием клавиш Ctrl + Break). Толку в 0-м варианте Do, казалось бы, мало, однако и он иногда бывает полезен.

Sub prog0()

Dim Фамилия As String, вопрос As String,n

n = 1 'счетчик строки

Do

Фамилия = InputBox("Введите фамилию")

Sheets("Лист1").Cells(n, 1) = Фамилия

n = n + 1

Loop

End Sub

Do … Loop While

Do

операторы

операторы

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

Операторы, составляющие тело цикла, выполняются до тех пор, пока условие работы цикла истинно. В противном случае произойдет выход на очередной за Do … Loop While оператор. Конструкция соответствует циклу с постусловием.

Sub prog1()

Dim Фамилия As String, вопрос As String,n

n = 1 'счетчик строки

Do

Фамилия = InputBox("Введите фамилию")

Sheets("Лист1").Cells(n, 1) = Фамилия

n = n + 1

Loop While Фамилия <> Enter 'пока условие истино

End Sub

Цикл-до

Do … Loop Until

Do

операторы

операторы

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

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

Sub prog2()

Dim Фамилия As String, вопрос As String,n

n = 1 'счетчик строки

Do

Фамилия = InputBox("Введите фамилию")

Sheets("Лист1").Cells(n, 1) = Фамилия

n = n + 1

Loop Until Фамилия = Enter 'пока условие ложно

End Sub

Do While … Loop

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

операторы

операторы

Loop

Операторы, составляющие тело цикла, выполняются до тех пор, пока условие работы цикла истинно. В противном случае произойдет выход на очередной за Do While … Loop оператор. Конструкция соответствует циклу с предусловием.

Sub prog3()

Dim Фамилия As String, вопрос As String

n = 1 'счетчик строки

Фамилия = InputBox("Введите фамилию")

Do While Фамилия <> Enter 'пока условие истино

Фамилия = InputBox("Введите фамилию")

Sheets("Лист1").Cells(n, 1) = Фамилия

n = n + 1

Loop

End Sub

Цикл-пока

Do Until … Loop

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

операторы

операторы

Loop

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

Sub prog3()

Dim Фамилия As String, вопрос As String

n = 1 'счетчик строки

Фамилия = InputBox("Введите фамилию")

Do Until Фамилия = Enter 'пока условие ложно

Фамилия = InputBox("Введите фамилию")

Sheets("Лист1").Cells(n, 1) = Фамилия

n = n + 1

Loop

End Sub

Соседние файлы в папке лекции