АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Использование циклов для повторения блоков программы

Читайте также:
  1. Can-Am-2015: новые модели квадроциклов Outlander L и возвращение Outlander 800R Xmr
  2. I. Основы применения программы Excel
  3. II съезд РСДРП. Принятие программы и устава. Возникновение большевизма.
  4. II этап: запуск программы PowerPoint и выбор режима отображения.
  5. II. Структура и использование земель сельскохозяйственного назначения
  6. II.2.3. Получение информации в работе психолога и ее использование
  7. III. Разведение спирта с использованием таблиц ГФ XI.
  8. III. Создание и обработка комплексного информационного объекта в виде презентации с использованием шаблонов.
  9. X 4 i_block ; Ссылки на первые 12 блоков файла
  10. А) ИСПОЛЬЗОВАНИЕ КАТЕГОРИИ ВИДА В РУССКОМ ЯЗЫКЕ
  11. а) при числе эпициклов,равном 1; б) при числе 2
  12. А.В. Яблоков,

Использование циклов дает возможность повторного выполнения набора инструкций. Некоторые циклы повторяют инструкции, пока условие имеет значение False; другие – пока значение условия равно True. Имеются также циклы, которые повторяют набор инструкций определенное число раз или же выполняют его для каждого объекта семейства.

 

3.2.1 Типы циклов

Do...Loop: повторяет набор инструкций, пока условие имеет значение True или пока оно не примет значение True.

For...Next: использует счетчик. Повторяет набор инструкций указанное число раз.

For Each...Next: повторяет набор инструкций для каждого объекта семейства.

 

3.2.2 Выполнение нескольких инструкций над одиночным объектом

В Visual Basic, требуется указать объект перед выполнением одного из его методов или изменением одного из его свойств. С помощью инструкции With можно указать объект только один раз для последовательности инструкций. With: выполняет последовательность инструкций над одиночным объектом.

 

3.2.3 Инструкция Do...Loop

Повторяет выполнение набора инструкций, пока условие имеет значение True или пока оно не примет значение True.

 

Синтаксис цикла Do с предусловием (проверка выполняется вначале):

 

Do [{While | Until} <условие>]

[инструкции]

[Exit Do]

[инструкции]

Loop

 

Допустим также синтаксис с постусловием (проверка выполняется в конце цикла и он хоть один раз, но выполнится в любом случае):

 

Do

[инструкции]

[Exit Do]

[инструкции]

Loop [{While | Until} <условие>]

 

Синтаксис инструкции Do Loop содержит следующие элементы:

· условие – числовое или строковое выражение, которое имеет значение True или False. Является необязательным. Значение Null рассматривается как значение False;

· инструкции – одна или несколько инструкций, выполнение которых повторяется, пока условие имеет значение True или пока оно не приобретет значение True.

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

В качестве примера рассмотрим решение следующей задачи. Пусть необходимо рассчитать значения функции Z=ctg(x* a), где х меняется от 0 до π с шагом 0.1*π, а величина a вводится с экрана. При этом нужно предусмотреть ситуацию, когда введенное значение a равно 1 – прекратить расчет функции с выдачей соответствующего сообщения.

 

Public Sub prim_cikle()

Dim Pi As Single, X As Single, St As Single, Z As Single, a As Single

Pi = 3.142: X = 0: St = 0.1 * Pi

Do While X <= Pi

a = InputBox("Введите значение a")

If a = 1# Then

MsgBox "Ошибка ввода. Прерываем цикл"

Exit Do

Else

Z = Sin(X * a) / Cos(X * a)

End If

Debug.Print a; X; Z

X = X + St

Loop

End Sub

 

3.2.4 Инструкция For...Next

 

Повторяет выполнение группы инструкций указанное число раз.

 

Синтаксис

 

For <счетчик> = <начало> To <конец> [Step <шаг>]

[инструкции]

[Exit For]

[инструкции]

Next [<счетчик>]

 

Синтаксис инструкции For…Next содержит следующие элементы:

· счетчик – обязательная числовая переменная, используемая в качестве счетчика цикла. Эта переменная не может принадлежать к типу Boolean или быть элементом массива;

· начало – начальное значение переменной счетчик; обязательный параметр;

· конец – конечное значение переменной счетчик;обязательный параметр;

· шаг – значение, на которое изменяется счетчик при каждом выполнении тела цикла, необязательный параметр. По умолчанию шаг равен единице. Аргумент шаг может быть как положительным, так и отрицательным;

· инструкции – одна или несколько инструкций между For и Next, которые выполняются указанное число раз; необязательный параметр.

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

Совет. Изменение значения переменной счетчик внутри цикла усложняет чтение и отладку программы.

Альтернативный способ выхода из цикла предоставляет инструкция Exit For. В любых местах цикла может размещаться любое число таких инструкций. Инструкция Exit For часто применяется вместе с проверкой некоторого условия (например, If...Then). Эта инструкция передает управление инструкции, непосредственно следующей за инструкцией Next.

Допускается организация вложенных циклов For...Next (один цикл располагается внутри другого). Счетчик каждого цикла должен иметь уникальное имя. Допускаются следующие конструкции:

 

For I = 1 To 10

For J = 1 To 10

For K = 1 To 10

...

Next K

Next J

Next I

 

Примечание. Если опустить переменную счетчик в инструкции Next, выполнение продолжается, как и при ее наличии. При обнаружении инструкции Next до соответствующей инструкции For возникает ошибка.

В качестве примера приведем ту же программу, что и в предшествующем пункте.

Public Sub prim_cikleFOR()

Dim Pi As Single, X As Single, St As Single, Z As Single, a As Single

Dim i As Integer

Pi = 3.142: X = 0: St = 0.1 * Pi

For i = 1 To 10 Step 1

a = InputBox("Введите значение a")

If a = 1# Then

MsgBox "Ошибка ввода. Прерываем цикл"

Exit For

Else

Z = Sin(X * a) / Cos(X * a)

End If

Debug.Print a; X; Z

X = X + St

Next i

End Sub

 

 

3.2.5 Инструкция For Each...Next

 

Повторяет выполнение группы инструкций для каждого элемента массива или семейства.

 

Синтаксис:

 

For Each <элемент> In <группа>

[инструкции]

[Exit For]

[инструкции]

Next [<элемент>]

 

Синтаксис инструкции For...Each...Next содержит следующие элементы:

· элемент – переменная, используемая для выполнения итераций по элементам семейства или массива. Обязательный параметр. Для семейств элемент может быть только переменной типа Variant, универсальной объектной переменной или переменной, представляющей любой конкретный объект. Для массивов элемент может быть только переменной типа Variant;

· группа – имя семейства объектов или массива (за исключением массивов с определяемыми пользователем типами). Обязательный параметр;

· инструкции – одна или несколько инструкций, которые выполняются над каждым элементом группы. Необязательный параметр.

Вход в блок For...Each выполняется только в том случае, если группа содержит хотя бы один элемент. После входа в цикл все инструкции цикла выполняются для первого элемента группы. Затем, если группа содержит другие элементы, инструкции цикла выполняются для каждого элемента. После обработки всех элементов цикл завершается, а выполнение продолжается с инструкции, следующей за инструкцией Next.

В любых местах цикла может размещаться любое число инструкций Exit For, позволяющих выйти из цикла.

Не допускается использование инструкции For...Each...Next с массивами, определяемыми пользователями типов, поскольку значение типа Variant не может содержать тип, определяемый пользователем.

Допускается организация вложенных циклов For...Each...Next.

Примечание. Если опустить элемент в инструкции Next, выполнение продолжается так же, как если бы элемент был указан. При обнаружении инструкции Next до соответствующей инструкции For возникает ошибка.

 

3.2.6 Инструкция Exit

Завершает выполнение блока программы Do…Loop, For...Next, Function, Sub или Property.

 

Синтаксис:

 

Exit Do

Exit For

Exit Function

Exit Property

Exit Sub

 

Рассмотрим синтаксис инструкции Exit подробнее:

- Exit Do - предоставляет способ завершения цикла Do...Loop. Может использоваться только внутри конструкции Do...Loop. Exit Do передает управление инструкции, следующей за инструкцией Loop. При использовании во вложенных циклах Do...Loop инструкция Exit Do передает управление циклу охватывающего уровня по отношению к циклу, в котором она вызывается;

- Exit For - предоставляет способ завершения цикла For. Может применяться только в цикле For...Next или For Each...Next. Exit For передает управление инструкции, следующей за инструкцией Next. При использовании во вложенных циклах For инструкция Exit For передает управление циклу охватывающего уровня по отношению к циклу, в котором она вызывается;

- Exit Function - немедленно завершает выполнение процедуры Function, в которой появляется эта инструкция. Выполнение продолжается с инструкции, следующей за инструкцией, в которой вызывалась процедура Function;

- Exit Property - немедленно завершает выполнение процедуры Property, в которой появляется эта инструкция. Выполнение продолжается с инструкции, следующей за инструкцией, в которой вызывалась процедура Property;

- Exit Sub - немедленно завершает выполнение процедуры Sub, в которой появляется эта инструкция. Выполнение продолжается с инструкции, следующей за инструкцией, в которой вызывалась процедура Sub.

Не следует путать инструкции Exit с инструкциями End. Инструкция Exit не определяет конец структуры.

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.)