В Visual Basic существует еще один вид цикла конструкции DO... Loop. Он отличается от рассмотренного ранее местом расположения условия. Если в предыдущей конструкции условие, по которому выполняется цикл, расположено в заголовке, то в этой конструкции условие располагается в конце цикла:
Do
конструкции
Loop While условие
При использовании этой формы оператора тело цикла выполняется хотя бы один раз, после чего осуществляется проверка заданного условия.
Есть еще две разновидности конструкции цикла Do. . .Loop. Данные операторы имеют следующий синтаксис:
Do Until условие
конструкции
Loop
и
Do
конструкции
Loop Until условие
Пример использования конструкции приведен ниже.
nCounter = 2
Do While nCounter < 10
nDecades(nCounter) = nCounter * 2
nCounter = nCounter * 2
Loop
ПРИЛОЖЕНИЕ А
Листинг программы 1
'Программа написана на VBA Благиревым Артемом Михайловичем гр.ПО - 03в
'Донецкий Институт Искусственного Интеллекта - 2004г
Private Sub CommandButton1_Click()
Dim a(10, 10) As Single
Dim i, j, k, d, m, n, max As Integer
Dim s(10) As Single
For i = 1 To 10
For j = 1 To 10
For k = i + 1 To 10
Open "C:\base.dat" For Input As #1
Do While Not EOF(1)
max = 0
Input #1, a(i, j)
a(i, j) = Cells(i, j).Value
d = (a(i, j) - a(k, j)) ^ 2
s(i) = Sqr(d)
If max < s(i) Then
s(i) = max
Range("A8").Value = max
End If
Loop
Close #1
Next k
Next j
Next i
End Sub
Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub
Листинг программы2
' Программа написана на VBA Благиревым Артемом Михайловичем гр.ПО - 03в
'Донецкий Государственный Институт Искусственного Интеллекта - 2004г
Private Sub CommandButton1_Click()
Dim результат, предложение1, предложение2 As String
'ввод предложения
предложение1 = CStr(TextBox1.Text)
предложение2 = CStr(TextBox2.Text)
'основной код программы
результат = StrComp(предложение1, предложение2, 1)
If результат = 0 Then
TextBox3.Text = "Предложения равны!"
Else: TextBox3.Text = "Предложения не равны!"
End If
End Sub
Private Sub CommandButton2_Click()
Userform1.hide
End Sub
Private Sub CommandButton3_Click()
Open "c:\file.txt" For Output As #1
Print #1, "Первое предложение ->"; TextBox1.Text
Print #1, "Второе предложение ->"; TextBox2.Text
Print #1, "Результат ->"; TextBox3.Text
Close #1
MsgBox "Файл создан, данные успешно записаны", vbInformation, "Запись"
End Sub
Private Sub CommandButton4_Click()
Open "c:\base.txt" For Input As #2
Do While Not EOF(2)
Input #2, предложение1, предложение2
TextBox1.Text = предложение1
TextBox2.Text = предложение2
Loop
Close #2
MsgBox "Данные успешно введены", vbInformation, "Ввод данных"
End Sub
ПРИЛОЖЕНИЕ Б
Экранные формы
Рисунок 1.1 – В начале работы приложения 1
Рисунок 1.2 - Окно открытия файла с исходными данными и результат работы приложения 1
Рисунок 2.1 – В начале работы приложения 2
Рисунок 2.2 – Окно открытия файла с исходными данными
Рисунок 2.3 – Результат работы программы