Лекция 5 Операторы цикла

Лекция 5
Операторы цикла

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

  • цикл с параметром,
  • цикл с предусловием,
  • цикл с постусловием.

ОПЕРАТОР ЦИКЛА С ПАРАМЕТРОМ

Этот тип оператора цикла используется в случаях, когда заранее известно необходимое количество повторов. В общем виде цикл с параметром выглядит так:

FOR i= A TO B

Операторы

NEXT i

где i — параметр цикла (счетчик повторов) — переменная целого типа (Byte или integer);

A и B — начальное и конечное значения параметра цикла‑ целочисленные выражения; обычно «A» равно 1, «В» равно требуемому количеству повторов;

операторы – блок операторов, которые требуется повторить несколько раз подряд.

При выполнении цикла FOR...TO...NEXT параметр цикла «i» последовательно увеличивает своё значение на единицу от начального значения «A» до конечного значения «B» и выполняет входящий в цикл алгоритм при каждом значении параметра цикла.

Пример использования оператора цикла: пятикратный вывод на экран диалогового окна MsgBox со словом «Цикл».

Option ExplicitSub Primer1( )Dim i As Byte

FOR i=1 TO 5

MsgBox "ЦИКЛ"

NEXT i

End Sub

Option ExplicitSub Primer2( )Dim i As Byte

FOR i=1 TO 5

MsgBox "ЦИКЛ"+STR(i)

NEXT i

End Sub

Пример формирования в цикле текстовой строки, содержащей пять строк со словом «Цикл»:

Option Explicit

Sub Primer3( )

Dim i As Byte, S As String

S = ""

For i = 1 To 5

S = S + "ЦИКЛ" + Str(i) + vbCrLf

Next i

MsgBox S

End Sub

Результат работы программы Prim3:

Параметр цикла “i” применяется не только для подсчёта количества повторов, но также может использоваться для вычислений внутри цикла.

Пример: найти сумму чисел от 0 до N.

Option Explicit

Sub Primer4( )

Dim i, N, Sum As Integer

'Указали количество повторов:

N= Val(InputBox("N= ", "", ""))

'Задали начальное значение суммы:

Sum= 0

For i = 1 To N

Sum = Sum + i

'Во время каждого повтора цикла

'содержимое переменной "Sum"

'увеличивается на новое значение счётчика "i"

Next i

MsgBox «Sum= » + Str(Sum)

EndSub

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

FOR i = A TO B STEP шагприращения

Операторы

NEXT i

Например, надо распечатать чётные числа от нуля до десяти:

Option Explicit

Sub Primer5( )

Dim i As Byte, S As String

S = "Чётныечисла:"

For i = 2 To 10 Step 2

S = S + Str(i)

Next i

MsgBox S

End Sub

Результат работы программы:

Счётчик повторов может не только возрастать, но и убывать:

FOR i = B TO A STEP -1

Операторы

NEXT i

В этой записи смысл параметров i, A и B имеет прежнее значение. Отличие в том, что шаг приращения счётчика равен минус один, а параметры «А» и «В» переставлены местами.

Например, распечатаем числа от 1 до 10 в убывающем порядке:

Option Explicit

Sub Primer6( )

Dim i As integer, S As String

S= «Числа в убывающем порядке:»

For i = 10 To 1 Step -1

S = S + Str(i)

Next i

MsgBox S

End Sub

Получим результат:

Досрочное завершение цикла

Как нам известно, оператор цикла завершает свою работу, когда счётчик повторов (т.е. параметр) достигает своего конечного значения, объявленного в заголовке цикла. Однако бывает необходимо, чтобы цикл заканчивался досрочно, до своего естественного окончания. Для этой цели применяется команда принудительного завершения цикла EXIT FOR.

Рассмотрим пример: ввести 5 чисел, суммировать их, пока сумма не превышает значения 15.

Option Explicit

Sub Primer7( )

Dim i, A, Sum As Integer

Sum = 0

For i = 1 To 5

A=VAL(InputBox(«1-ечисло:»,"Введите5 чисел",""))

IF SUM+A>15 THEN EXIT FOR

Sum = Sum + A

Next i

MsgBox «Sum= » + Str(Sum)

EndSub

При использовании оператора цикла с параметром нельзя изменять внутри цикла текущее значения счётчика, а также начальное и конечное значения счётчика:

Sum=0

FOR i=1 TO 10

Sum=Sum+i

i=3

NEXT i

MsgBox STR(Sum)

Рассмотрим несколько типовых примеров задач с использованием оператора цикла с параметром.

Option Explicit

Sub Cycle1( ) 'Найти максимум из 5-ти чисел

Dim A, Max As Single, i As Byte

A=VAL(InputBox(«1-е число:»,«Введите 5 чисел»,""))

Max=A

For i=2 To 5

A=VAL(InputBox(STR(i)+"-е число:",«Введите 5 чисел»,""))

IF A>Max Then Max=A

NEXT i

MsgBox «MAX= „+STR(MAX)

End Sub

---------------------------------

Option Explicit

Sub Cycle2( ) 'Найтисуммуположительныхчисел

Dim A, Sum As Single, i As Byte

Sum=0

For i=1 To 5

A=VAL(InputBox(STR(i)+“-е число:»,«Введите 5 чисел»,""))

IF A>0 Then Sum=Sum+A

NEXT i

MsgBox «SUM= „+STR(SUM)

End Sub

---------------------------------

Option Explicit

Sub Cycle3( ) 'Подсчитатькол-вонулей

Dim A As Single, N, i As Byte

N=0

For i=1 To 5

A=VAL(InputBox(STR(i)+“-е число:»,«Введите 5 чисел»,""))

IF A=0 Then N=N+1

NEXT i

MsgBox «Количество нулей= „+STR(N)

End Sub

---------------------------------

----------------------------------

Option Explicit

Sub Cycle4( ) 'Подсчитатькол-вочётныхчисел

Dim A As Single, N, i As Byte

N=0

For i=1 To 5

A=VAL(InputBox(STR(i)+“-е число:»,«Введите 5 чисел»,""))

IF A mod 2=0 Then N=N+1

NEXT i

MsgBox «Количество чётных чисел= „+STR(N)

End Sub

----------------------------------

Option Explicit

Sub Cycle5( ) 'Подсчитатькол-воцифр

Dim S As String, N, i As Byte

N=0

For i=1 To 5

A=VAL(InputBox(STR(i)+“-й символ:»,«Введите 5 чисел»,""))

SELECT CASE S

CASE «0» TO «9»: N=N+1

End SELECT

NEXT i

MsgBox «Количество цифр= „+STR(N)

End Sub

138
RSS
Нет комментариев. Ваш будет первым!
Загрузка...
Этот сайт использует файлы cookies, чтобы облегчить вам пользование нашим веб-сайтом. Продолжая использовать этот веб-сайт, вы даете согласие на использование файлов cookies. Подробнее о том, как мы пользуемся файлами cookies и как ими управлять, вы можете узнать нажав на ссылку ниже.