Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятно о Visual Basic.NET. Самоучитель.Ч2.2005...docx
Скачиваний:
46
Добавлен:
25.11.2019
Размер:
4.02 Mб
Скачать
      1. Оператор Exit Do

Оператор Exit Do нужен для того, чтобы выходить из цикла не в начале тела цикла, как в вариантах 3-4, не в конце, как в вариантах 1-2, а в середине. Добавим, например, Exit Do в тело цикла одного из вариантов предыдущей программы:

Write("Начало счета ")

f = 3

Do

Write(f & " ")

Exit Do

f = f + 2

Loop While f <= 9

Write("Конец счета")

Вот результат работы этой программы:

Начало счета 3 Конец счета

Как видите, Exit Do – это всего лишь приказ перейти к оператору, следующему за словом Loop. Толк от Exit Do будет тогда, когда его поместят внутрь оператора ветвления:

Write("Начало счета ")

f = 3

Do

Write(f & " ")

If f >= 5 Then Exit Do

f = f + 2

Loop While f <= 9

Write("Конец счета")

Вот результат работы этой программы:

Начало счета 3 5 Конец счета

Пока в Exit Do особого смысла вы не видите. А увидите вы его в следующей задаче, где не подойдет ни один из вариантов 1 – 4 оператора Do, а подойдет Exit Do в совокупности с 0 вариантом.

Задача. Выполнить с использованием Do и Exit Do Задание 26.: Для х=2700, 900, 300, 100 . . . и т.д. вычислять и печатать y=x/4+20 и z=2y+0.23 до тех пор, пока yz не станет меньше 1/х.

Загляните в ответ – как решена задача без Do. А вот как – с Do.

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Dim x, y, z As Double

x = 2700

Do

y = x / 4 + 20

z = 2 * y + 0.23

If y * z < 1 / x Then Exit Do

Debug.WriteLine(Format(x, "0.000000") & " " & Format(y, "0.000000") & " " & Format(z, "0.000000"))

x = x / 3

Loop

End Sub

Как видите, очень похоже. Обратите внимание, что если вы захотите обойтись без Exit Do и использовать один из вариантов 1 – 4 оператора Do, то у вас при использовании 1-2 вариантов «новый» x в условии y*z<1/x будет сравниваться со «старыми» y и z (в нашем конкретном случае это не приведет к катастрофе, но все равно это нехорошо). А использование 3-4 вариантов вообще невозможно без неоправданного усложнения программы.

Решить чуть измененную задачу про «Хватит так хватит» из предыдущего раздела: Компьютер предлагает человеку ввести слово, после чего распечатывает это слово, снабдив его восклицательным знаком. Затем снова предлагает ввести слово и так до тех пор, пока человек не введет слово «Хватит». Его он не распечатывает вообще, а отвечает «Хватит так хватит» и заканчивает работу. Указание: Используйте Exit Do в совокупности с 0 вариантом Do. Остальные варианты не подойдут или подойдут плохо.

      1. Оператор цикла While …End While

Имеется оператор цикла While …… End While, привычный для других языков и для предыдущих версий Бейсика. Вот вам его синтаксис:

While условие продолжения работы цикла

операторы

операторы

…………….

End While

А смысл – абсолютно тот же, что и у Do While …. Loop