Читайте также: |
|
Для управления циклом с неизвестным заранее числом повторений в VB существуют оператор цикла DO... LOOP («Делать... петля»).
Он повторяет блок операторов, пока условие истинно, или до тех пор, когда оно станет ложным. Существует два варианта цикла DO... LOOP:
• с проверкой выражения вначале DO WHILE... LOOP и DO LINTIL... LOOP;
• с проверкой выражения в конце DO... LOOP WHILE и DO... LOOP UNTIL.
Логика работы оператора с проверкой условия в начале цикла для DO WHILE...LOOP. Для DO UNTIL... LOOP операторы цикла, стоящие между DO UNTIL и LOOP будут выполняться в том случае, если значение условия будет ложным.
В случае проверки выражения в конце цикла для операторов DO... LOOP WHILE логика заключается в следующем. Сначала выполняются операторы цикла между DO и условием LOOP WHILE, затем вычисляется условие и проверяется. Если оно выполняется, то управление передается на начало цикла, иначе осуществляется выход из цикла. В случае использования DO... LOOP UNTIL, цикл выполняется до тех пор, пока условие принимает значение ложь.
Рассмотрим варианты использования этого оператора, ВНЕСЯ изменения в программный код нашего примера.
1. Dim s As Single s = InputBox("Сколько будет 2+2?", "Тест") Do While s <> 4 MsgBox("Неверно! Попробуйте еще раз") s = InputBox("Сколько будет 2+2?", "Тест") Loop MsgBox("ПРАВИЛЬНО!!!") 2. Dim s As Single s = InputBox("Сколько будет 2+2?", "Тест") Do MsgBox("Неверно! Попробуйте еще раз") s = InputBox("Сколько будет 2+2?", "Тест") Loop While s <> 4 MsgBox("ПРАВИльнО!) 3. Dim s As Single s = InputBox("Сколько будет 2+2?", "Тест") Do Until s = 4 MsgBox("Неверно! Попробуйте еще раз") s = InputBox("Сколько будет 2+2?", "Тест") Loop MsgBox("ПРАВИЛЬНО!!!") Dim s As Single s = InputBox("Сколько будет 2+2?", "Тест") Do MsgBox("Неверно! Попробуйте еще раз") s = InputBox("Сколько будет 2+2?", "Тест") Loop Until s = 4 MsgBox("ПРАВИЛЬНО!!!") |
Во всех рассмотренных вариантах тестирование может проводиться бесконечное число раз до получения правильного ответа. Только когда переменная s получит значение 4 (правильный ответ на поставленный вопрос) программа закончит свое выполнение. Каждый из вариантов имеет как преимущества, так и недостатки. Поэтому при составлении программного кода следует выбирать наиболее приемлемый для конкретного случая вариант.
Иногда бывает необходимо прервать цикл DO...LOOP, если выполняется какое-либо дополнительное условие. Это может быть сделано с помощью оператора Exit Do.
ВВНЕСИТЕ следующие изменения в последний вариант программного кода:
Dim s As Single, t As Integer s = InputBox("Сколько будет 2+2?", "Тест") Do Until s = 4 MsgBox("Неверно! Попробуйте еще раз") s = InputBox("Сколько будет 2+2?", "Тест") t = t + 1 If t = 5 Then MsgBox("Очень плохо!. Иди учи математику!") Exit Do End If If s = 4 Then MsgBox("Правильно") Loop |
Дата добавления: 2015-07-08; просмотров: 141 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
ЦИКЛ СО СЧЕТЧИКОМ (FOR ... NEXT) | | | ВОЗНИКНОВЕНИЕ ТРАВМ И МАСОК |