КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Итерационный цикл Do Until...Loop или Do...Loop UntilUntil (до) – зарезервированное слово. По своей логике цикл Until подобен циклу Whileс той лишь разницей, что выполнение условия означает необходимость выхода из цикла. Как и в случае цикла While, проверка условия выхода в цикле Untilможет осуществляться перед очередным проходом или после него. Вот синтаксис этих двух вариантов. Первый вариант:
Do Until УсловиеВыхода Группа инструкций Loop Блок-схема реализуемого алгоритма приведена на рис. 7.3. Второй вариант:
Do Группа инструкций Loop Until УсловиеВыхода
Блок-схема реализуемого алгоритма приведена на рис. 7.4. Перейдем к примерам.
Пример 3 Рассмотрим действие участка программы:
Счетчик = 0 Номер = 20 Do Until Номер = 10 Номер = Номер – 1 Счетчик = Счетчик + 1 Loop
Переменная Счетчик получит значение 10.
Пример 4
Счетчик = 0 Номер = 1 Do Номер = Номер + 1 Счетчик = Счетчик + 1 Loop Until Номер = 10
Переменная Счетчик получит значение 9.
Инструкцию Do...Loop можно завершить досрочно с помощью инструкции Exit Do.
Пример 5
Задана строка символов. Получить новую строку символов, отличающуюся от исходной тем, что из нее удалены все пробелы. Так, например, строки “Это тест” и “ Это тест ” должны считаются идентичными. Применим некоторые стандартные функции VB, предусмотренные для обработки строк: Len(Строка) – возвращает количество символов в аргументе Строка; InStr([Начало], Строка1,Строка2) – возвращает номер позиции, начиная с которой Строка2 входит в Строку1 или 0, если Строка2 не входит в Строку1, аргумент Начало – номер позиции, с которой начинается поиск; Left(Строка, КоличествоСимволов) – возвращает строку, включающую первые КоличествоСимволов аргумента Строка; Right(Строка, КоличествоСимволов) – возвращает строку, включающую последние КоличествоСимволов аргумента Строка.
Function УдалениеПробелов(Строка As String) As String Dim Длина As Long, Позиция As Long, Старт As Long Старт = 1 Do Длина = Len(Строка) Позиция = InStr(Старт, Строка, " ") If Позиция > 0 Then Строка = Left(Строка, Позиция – 1) _ & Right(Строка, Длина – Позиция) Старт = Позиция Loop Until Позиция = 0 УдалениеПробелов = Строка End Function
В этой функции в цикле определяется номер позиции от начала заданной строки, в которой стоит пробел. Затем из строки вырезается эта позиция с пробелом. Цикл прекращается, когда в строке не остается ни одного пробела (в этом случае функция InStr(Старт, Строка, " ") возвратит 0).
|