Выполнение повторяющихся действий — КиберПедия 

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Выполнение повторяющихся действий



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

 

Цикл For...Next

Основная форма циклов в Visual Basic — цикл For,..Next. Он используется для выполнения определенного количество итераций. Циклы For...Next обычно используются для работы со счетчиками и в других ситуациях, когда количество итераций известно заранее. Они имеют следующий синтаксис:

 

For Счетчик=НачальноеЗначение To КонечноеЗначение

Повторяющиеся действия

Next Счетчик

 

Несмотря на простоту этого фрагмента, обратите внимание на некоторые обстоятельства:

О Переменная Счетчик имеет числовой тип (Integer или Long) и указывается программистом (например, I).

О НачальноеЗначение определяет состояние переменной, с которого начинается отсчет.

О КонечноеЗначение определяет состояние переменной, в котором отсчет прекращается.

Например, чтобы переменная x в цикле принимала значения от 1 до 5, Счетчик заменяется на x, НачальноеЗначение — на 1, а КонечноеЗначение — на 5. В первой строке цикла For...Next может присутствовать ключевое слово Step. Оно позволяет изменить приращение счетчика (по умолчанию оно равно 1). Например, если значение счетчика каждый раз увеличивается на 3, строка For будет завершаться Step 3. Если счетчик увеличивается на 2, строка завершается Step 2. В следующем фрагменте счетчик изменяется от 10 до 100 с приращением 5:

 

For I = 10 To 100 Step 5

' Повторяющиеся действия

Next

 

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

 

ПОДСКАЗКАПо умолчанию в цикле For...Next приращение счетчика равно 1. Чтобы использовать другое приращение, следует указать ключевое слово Step, а после него — нужное значение.

 

Счетчик даже может изменяться в обратном направлении. Для этого следует задать начальное значение больше конечного и выбрать отрицательное приращение после ключевого слова Step. Например, в следующем фрагменте счетчик изменя-етсяот 10 до 1:

 

For I = 10 To 1 Step -1

Повторяющиеся действия

Next

 

А здесь счетчик изменяется от 100 до 0 с уменьшением на 10:

 

For I = 100 To 0 Step -10



' Повторяющиеся действия

Next

 

Чтобы выйти из цикла до того, как счетчик достигнет конечного значения, воспользуйтесь командой Exit For. Например:

 

For I = 1 To 100 Step 5

X = I * 10

If X > 100 Then

Exit For

End If

Next

 

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

 

Цикл Do...Loop

Другой тип циклов реализуется с помощью конструкции Do...Loop. Эта конструкция используется в тех ситуациях, когда точное количество повторений заранее неизвестно или вы хотите дождаться выполнения некоторого условия. Например, можно в цикле перебирать содержимое набора записей, полученного из базы данных. Скорее всего, точное количество записей будет неизвестно заранее, но зато можно определить, что вы достигли конца набора. Цикл Do...Loop прекрасно справляется с этой задачей.

Цикл Do...Loop может выполняться бесконечно:

 

Do

' Повторяющиеся действия

Loop

 

Цикл с условием завершения выглядит так:

 

Do While X < 10

X = X + 1

Loop

 

Он продолжает выполняться до тех пор, пока значение переменной остается меньше 10. Поскольку X не присваивалось конкретного значения, цикл будет выполняться 10 раз. Вместо ключевого слова While можно воспользоваться ключевым словом Until, но тогда вместо условия продолжения вычислений формулируется условие завершения. Наш фрагмент эквивалентен следующему:

 

Do Until X = 10

X = X + 1

Loop

 

Для выхода из цикла можно использовать практически любое логическое условие, сформулированное на Visual Basic. Оно может содержать логические операторы и операторы сравнения, а также логические переменные.

 

ПОДСКАЗКАДля выхода из цикла также применяется команда Exit Do. Oco-бенно часто она используется в сочетании с оператором If...Then.

 

Цикл While...Wend

Другая форма цикла, похожая на конструкцию Do...Loop, — цикл While...Wend. В нем последовательность команд выполняется до тех пор, пока остается истинным указанное условие. Например, следующий цикл:



 

While X < 10

X = X + 1

Wend

 

выполняется до тех пор, пока значение X не достигнет 10. Поскольку цикл While-Wend эквивалентен конструкции Do...Loop, выбор между ними является делом вкуса.

Mny76

Перебор коллекций

В Visual Basic существует еще один тип циклов, предназначенный для переборов коллекций. Для этой цели используются циклы For Each...Next. Такой способ особенно полезен в ситуации, когда точное количество объектов в коллекции неизве-стпо заранее.

 

ПРИМЕЧАНИЕКоллекцией называется объект, который содержит другие, взаимосвязанные объекты.

 

Цикл для перебора всех объектов коллекции может выглядеть так:

 

Dim cmd As CommandButton

*

For Each cmd In Form1

With cmd

If .Index <> Index Then

MsgBox "Кнопка " & Trim$(Str$(.Index)) &_

не была нажата"

End If

End With

Next

 

В первой строке объявляется объект класса CommandButton. Bo второй строке Visual Basic перебирает все объекты CommandButton на форме Form1. Далее следует оператор With cmd, который сообщает о том, что операции блока With...End With выполняются с текущим объектом коллекции cmd.

Циклы по элементам коллекций используются во многих задачах, среди которых перебор элементов деревьев и табличных списков, дочерних форм приложений MDI и объектов, принадлежащих документам DHTML (см. урок 18, «Программирование для Интернета на Visual Basic»).

 

Пример использования циклов

Следующий пример наглядно показывает, как организуется совместная работа цик-лов, условий и логических операторов. В нем описанные ранее разновидности циклов используются для заполнения нескольких текстовых полей на форме. Хотя такая программа не обладает особой практической ценностью, она хорошо демонстрирует работу различных циклов.

1. Создайте новый проект командой File > New Project.

2. В диалоговом окне New Project выберите значок Standard EXE и нажмите кнопку ОК.

3. Задайте свойству Name формы Form1 значение frmMain, а свойству Caption — значение Циклы.

4. Откройте редактор меню клавишами Ctrl+E. 5. Создайте меню верхнего уровня, указывая в поле Caption значение &Цикл. Введите в поле Name значение mnuLoop.

6. Создайте новый объект меню (нажмите кнопку Next в редакторе меню).

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

 

Рис. 6.7. Создание команды меню

 

8. Введите в поле Caption значение &For... Next, а в поле Name — значение mnuLoop ForNext.

9. Нажмите кнопку Next, чтобы создать следующую команду меню. Обратите внимание: она уже снабжена необходимым отступом, поэтому нажимать кнопку со стрелкой не нужно.

10. Введите в поле Caption значение &Do... Loop, а в поле Name — значение mnuLoopDo-Loop.

11. Нажмите кнопку Next, чтобы создать следующую команду меню. Введите в поле Caption значение &While... Wend, а в поле Name — значение mnuLoopWhileWend.

12. Нажмите кнопку Next, чтобы создать следующую команду меню. Введите в поле Caption значение «-» (дефис), а в поле Name — значение mnuLoopSep1.

 

ПОДСКАЗКА

Когда в поле Caption объекта меню вводится дефис (-), объект представляет собой разделитель, предназначенный для визуальной группировки команд меню. Более подробная информация о создании меню приведена в уроке 5, «Создание и использование меню и панелей инструментов».

 

13. Создайте следующую команду меню,введите в поле Caption значение&Очис-тить,а в поле Name — значение mnuLоорС1еаг.

14. Нажмите кнопку OK, чтобы закрыть редактор меню.

15. Сохраните проект командой File > Save Project.

 

ВНИМАНИЕПри выполнении длинных или сложных операций почаще сохра-няйте свою работу. Если система «зависнет», потери будут минимальными.

 

16. Создайте на форме frmMain текстовое поле, расположите его в левом верхнем углу формы и задайте его свойству Name значение txtTextBox. Удалите текущее содержимое свойства Text.

17. Активизируйте элемент, щелкнув на элементе txtTextBox в конструкторе форм.

18. Нажмите Ctrl+C, чтобы скопировать элемент в буфер обмена.

19. Щелкните на форме frmMain.

20. Нажмите Ctrl+V, чтобы вставить текстовое поле из буфера на форму. Появляется диалоговое окно (рис. 6.8), в котором вам предлагается создать массив элементов. Нажмите кнопку Yes.

 

 

Рис. 6.8. Создание массива элементов

 

21.Расположите новое текстовое поле справа от первого.

22. Снова щелкните на форме и нажмите Ctrl+V, чтобы вставить из буфера следующее текстовое поле. Расположите его справа от полей, созданных при выполнении шагов 20 и 21.

Мы создали ряд из трех текстовых полей. Продолжайте вставлять на форму копии текстового поля и расположите их в виде таблицы, состоящей из трех столбцов и пяти строк. Форма с 15 текстовыми элементами должна выглядеть так, как показано на рис. 6.9.

23. Выберите команду For...Next из меню Циклы формы frmMain. Открывается окно программы с процедурой события mnuLoopForNext_Click.

24. Вставьте в процедуру следующий фрагмент:

 

Private Sub mnuLoopForNext_Click()

Dim i As Integer

 

'Заполнить текстовые поля в цикле

For...Next For i = 0 to 14

txtTextBox(i).Text = "i = " & Trim$(Str$(i))

Next

End Sub

 

 

Рис. 6.9. Форма с массивом текстовых полей

 

25. Перейдите к процедуре события mnuDoLoop_Click и вставьте в нее следующий фрагмент:

 

Private Sub mnuDoLoop_Click()

Dim i As Integer

 

'Заполнить текстовые поля в цикле For...Next

i = 0

Do While i < 15

txtTextBox(i).Text = "i = " & Trim$.(Str$(i'))

i = i + 1

Loop

End Sub

 

26. Вставьте следующий фрагмент в процедуру события mnuWhileWend_Click:

 

Private Sub fnnuWhileWend_Click()

Dim i As Integer

 

'Заполнить текстовые поля в цикле For...Next

i = 0

While i < 15

txtTextBox(i).Text = "i = " & Trim$(Str$(i))

i = i + 1

Wend

End Sub

 

27. Вставьте следующий фрагмент в процедуру mnuLoopClear_Click:

 

Private Sub mnuWhileWend_Click()

Dim x As Control

' Перебрать все текстовые поля на форме

' и стереть их содержимое

For Each x In frmMain.Controls

If UCase$(Left$(x.Name, 3)) = "TXT" Then

x.Text = ""

End If

Next

End Sub

 

28.Coxpaните и запустите проект.

Выберите один из циклов, перечисленных в меню Циклы, и проследите за изменением текстовых полей. Все типы циклов дают одинаковый результат, но разными способами (рис. 6.10). Как вы вскоре убедитесь, одна и та же задача в программировании может решаться по-разному. Проследив за работой циклов, выберите из меню Циклы команду Очистить. Программа перебирает все объекты на форме и очищает свойство Text каждого текстового поля. Запомните этот прием, он пригодится вам при создании ваших собственных приложений.

 

ПОДСКАЗКАЕсли вы — начинающий программист или новичок в Visual Basic,

выделите немного времени на просмотр программ-примеров.

Запустите их, чтобы понять, что они делают, а затем просмотрите текст программы. Изучение программ, написанных другими, — лучший способ освоить язык программирования!

 

Рис. 6.10. Пример работы с циклами

 

Что нового мы узнали?

В этом уроке мы научились:

Работать с двоичной логикой.

Использовать логические операторы Visual Basic для обработки условий.

Использовать условные операторы для принятия решений.

Использовать различные типы циклов для выполнения повторяющихся действий.

Создавать«мыслящие»приложения.

 

 

Урок 7

Типы переменных

Переменные

Массивы

Константы

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

 






Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...





© cyberpedia.su 2017 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав

0.043 с.