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

Циклы с условиями



Читайте также:
  1. Вложенные циклы
  2. Вложенные циклы
  3. Геокосмические циклы
  4. ЗА УСЛОВИЯМИ ЖИЗНЕДЕЯТЕЛЬНОСТИ ЛИЧНОГО СОСТАВА
  5. Повторные циклы.
  6. ПРАКТИКА ВРАЧЕЙ ВОИНСКИХ ЧАСТЕЙ ПО ОСУЩЕСТВЛЕНИЮ МЕДИЦИНСКОГО КОНТРОЛЯ ЗА УСЛОВИЯМИ ЖИЗНЕДЕЯТЕЛЬНОСТИ ЛИЧНОГО СОСТАВА
  7. СЕМИЛЕТНИЕ ЦИКЛЫ

 

Оператор While … Wend

 

While условие

группа_операторов

Wend

 

Оператор цикла While … Wend работает не заданное количество раз, а пока выполняется условие. Например:

 

Function Summing()

Dim i As Integer

Dim Sum As Integer

Sum = 0

While i < 50

i = i + 1

Sum = Sum + i

Wend

MsgBox "Сумма чисел от 1 до 50 равна " & CStr(Sum)

End Function

 

В рассмотренной программе группа операторов внутри цикла выполняется до тех пор, пока переменная i не станет равной 50.

 

Оператор цикла Do

 

Может иметь одну из нескольких разновидностей:

 

Do While условие Do

группа _ операторов группа _ операторов

Loop Loop While условие

 

Do Until условие Do

группа_операторов группа_операторов

Loop Loop Until условие

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

 

Function DW()

Dim Sum As Single, x As Single

Dim i As Integer

i = 1

Sheets("Лист1").Cells(i, 1).Value = " Числа:"

Sheets("Лист1").Cells(i, 2).Value = " Сумма:"

Do

x = InputBox("Введите " & CStr(i) & " - ое число:")

Sum = Sum + x

If x > 5 Then Exit Do

Sheets("Лист1").Cells(i + 1, 1).Value = x

Sheets("Лист1").Cells(i + 1, 2).Value = Sum

i = i + 1

Loop While i < 20

MsgBox "Сумма " & CStr(i) & " введённых чисел равна: " & CStr(Sum)

End Function

В этом примере в диалоговые окна вводятся числа до тех пор, пока количество введённых чисел не достигнет 20 (выход из цикла по условию) или пока введённое число не окажется больше 5 (выход из цикла при помощи оператора Exit Do). Введённые числа суммируются, и результат выводится на экран в диалоговом окне.

В следующем примере создаётся массив с результатами бросания игральной кости. Игральная кость бросается до тех пор, пока не выпадет 6. Размерность массива после каждого броска корректируется с сохранением в нём ранее записанных результатов бросания кости, за счёт применения ключевого слова Preserve:

 

Sub Attempts()

Dim Result() As Integer ' объявляется динамический массив

Dim Attempt As Integer, Score As Integer

ReDim Result(0) ' начальный размер массива - одномерный, нулевой длины

Attempt = 0: Score = 0

Randomize

Do Until Score = 6 ' цикл выполняется до тех пор,

' пока переменная Score не станет равной 6

Attempt = Attempt + 1

Score = Int(6 * Rnd()) + 1

ReDim Preserve Result(Attempt) ' увеличиваем длину массива на

'еденицу, сохраняя предыдущие значения

Result(Attempt) = Score '

Sheets("Лист3").Cells(Attempt, 1).Value = Result(Attempt)

Loop

End Sub


Дата добавления: 2015-07-11; просмотров: 152 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.006 сек.)