Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Безусловный выход из цикла.




Цикл можно выполнить произвольное число раз, либо ни одного. Инструкция Exit Do позволяет безусловно передать управление команде, которая следует за последней командой цикла.

Counter = 99 Do Until Counter <= 0 If Counter > 50 Then MsgBox "Начальное значение больше допустимого" Exit Do End If Call MySubroutine Counter = Counter – 2 Loop

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

Цикл While…Wend

Инструкция While…Wend является разновидностью инструкции Do…Loop. В ранних версиях Basic, в которых не было инструкции Do…Loop, весьма эффективно использовалась команда While…Wend. Формат инструкции прост:

While [условие]

инструкции

Wend

Первый пример для инструкции Do…Loop можно с легкостью изменить, чтобы использовать цикл While…Wend:

Counter = 100

While Counter > 0

Call MySub

Counter = Counter - 1

Wend

Инструкция While…Wend в отличие от цикла Do…Loop не имеет второго варианта, в котором проверка условия выполняется в конце цикла. Кроме того, для данного цикла нет инструкции для безусловного выхода, подобной Exit Do.

Цикл For…Next

Инструкцию For…Next можно встретить в большинстве языков программирования. Она позволяет циклически выполнить набор утверждений заданное число раз. Формат инструкции следующий:

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

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

Next счетчик

Параметр счетчик - это числовая переменная, которая автоматически увеличивается после каждого повтора. Начальное значение счетчика равно параметру начало, а конечное - параметру конец. Приведем пример программы перебора всех дней недели:


Sub Дни_недели()

For i = 1 To 8

Select Case i

Case 1

День = "Понедельник"

Case 2

День = "Вторник"

Case 3

День = "Среда"

Case 4

День = "Четверг"

Case 5

День = "Пятница"

Case 6

День = "Суббота"

Case 7

День = "Воскресенье"

Case Else

День = "Нет вариантов"

End Select

MsgBox (День)

Next i

End Sub


Обратите внимание, что переменная i автоматически увеличивается по достижении конца цикла. Ее не требуется изменять отдельной командой. Применяемый по умолчанию шаг равный 1, можно изменить, указав необязательное ключевое слово Step и величину шага. Значение шага может быть как положительным, так и отрицательным, что позволяет также создать циклы для счета в обратном направлении.

 

ПРАКТИЧЕСКОЕ УПРАЖНЕНИЕ

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

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

Чтобы выполнить эту задачу, нам придется воспользоваться несколькими новыми функциями:

Rnd() – генерация случайного числа в диапазоне [0; 1);

Int(число) – целая часть числа;

Chr(13) – перевод строки (аналогично нажатию клавиши Enter).

1. Перейдите в редактор VBA и откройте окно проекта, если до этого оно было закрыто.

2. Отобразите окно модуля.

3. В окне модуля введите следующую процедуру:

Public Sub Выбрасывание_кости() Dim numbers(6) As Double Dim a As Double N = InputBox("Введите число выбрасываний кости") For i = 1 To N a = Int(Rnd() * 6) + 1 numbers(a) = numbers(a) + 1 Next i info = "Число выбрасываний" & Chr(13) & Chr(13) & _ "1 - " & numbers(1) & _ " 4 - " & numbers(4) & Chr(13) & _ "2 - " & numbers(2) & _ " 5 - " & numbers(5) & Chr(13) & _ "3 - " & numbers(3) & _ " 6 - " & numbers(6) MsgBox (info) End Sub

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Нарисовать общую схему команды цикла.

2. Как выглядит общий вид записи оператора цикла с известным числом повторений?

3. Что значат в переводе слова For, Step, Next?

4. Как выполняется оператор цикла с известным числом повторений?

5. Может ли быть шаг цикла отрицательным?





Поделиться с друзьями:


Дата добавления: 2016-11-12; Мы поможем в написании ваших работ!; просмотров: 671 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Люди избавились бы от половины своих неприятностей, если бы договорились о значении слов. © Рене Декарт
==> читать все изречения...

2430 - | 2229 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.