End Sub

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

В VBA для организации циклов с неизвестным заранее числом повторений тела цикла используется и оператор цикла Do – Loop.

Существует четыре формы записи этого оператора. Их можно разбить на две группы: циклы с предусловием и циклы с постусловием.

I. Циклы с предусловием.

1. Do While Условие 2. Do Until Условие

Блок операторов Блок операторов

Loop Loop

II. Циклы с постусловием.

1. Do 2. Do

Блок операторов Блок операторов

Loop While Условие Loop Until Условие

Оператор Do While – Loop обеспечивает многократное выполнение блока операторов до тех пор, пока условие истинно, а оператор Do Until – Loop – пока условие ложно.

Операторы Do – Loop While и Do – Loop Until отличаются от первых двух операторов тем, что сначала выполняется блок операторов, а затем проверяется условие. Таким образом, в этих циклах блок операторов, составляющих тело цикла, выполнится по крайней мере один раз.

Приведем примеры использования цикла Do – Loop While.

Задача 1. Составить программу, позволяющую вводить с клавиатуры целые числа до тех пор, пока не будет введено число, кратное 6, и вычислить количество введенных чисел (вместе с последним).

Программный код

Option Explicit

Sub PR12()

Dim x As Integer, k As Integer

k = 0

Do

x = Val(Inputbox(“Введите число”))

k = k+1

Loop While x mod 6<>0

MsgBox ("количество=" & k)

End Sub

Если использовать оператор Do – Loop Until, то основная часть программы выглядит следующим образом:

k = 0

Do

x = Val(Inputbox(“Введите число”))

k = k+1

Loop Until x mod 6=0

MsgBox ("количество=" & k)

Задача 2. Составить программу, вычисляющую сумму членов последовательности –1, 3, 7, … до тех пор, пока она (сумма) не превысит заданное число Х.

Задачу можно решить, используя различные формы записи цикла Do – Loop.

Программный код

1.

Option Explicit

Sub PR13()

Dim x As Integer, sum As Integer, a As Integer

x = Val(Inputbox(“Введите число”))

sum = 0

a = -1

Do

sum = sum + a

a = a + 4

Loop While sum<=x ‘ или Loop Until sum>x

MsgBox ("Сумма равна" & sum)

End Sub

2.

x = Val(Inputbox(“Введите число”))

sum = 0

a = -1

Do While sum<=x ‘ или Loop Until sum>x

sum = sum + a

a = a + 4

Loop

MsgBox ("Сумма равна" & sum)

Задача 3. Вычислить произведение и сумму цифр произвольного числа.

Option Explicit

Sub PR14()

Dim x As Integer, sum As Integer, pr As Long, c As Integer

x = Val(Inputbox(“Введите число”))

sum = 0

pr = 1

While x<>0

c = x mod 10 ‘ вычисляем последнюю цифру в числе

sum = sum + c ‘ вычисляем сумму цифр

pr = pr * c ‘ вычисляем произведение цифр

x = x \ 10 ‘ отбрасываем последнюю цифру числа

Wend

MsgBox ("Сумма = " & sum & ", произведение = " & pr)

End Sub


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: