Вчера я уже рассказал вам о том, какие есть в Visual Basic циклы. Но мы рассмотрели тогда только два вида циклов (For … Next и Do … Loop). Сегодня мы закончим изучение всех циклов, которые есть в Visual Basic.NET. Сегодня нам предстоит изучить еще два цикла – Do … Loop Until и Do While … Loop.
Скажу еще несколько слов о примерных темах будущих статей. Уже довольно скоро (наверно – со среды) я планирую начать описывать объектно-ориентированное программирование. Сначала будет вводная статья (в которой опишу основы ООП), а потом уже буду показывать конкретные примеры на VB.NET. Так что не пропустите, почаще посещайте блог. А пока – приступим к продолжению изучения циклов.
Для визуально демонстрации и большего понимания циклов, которые мы рассмотрим, приведу вот такую картинку:
Для визуально демонстрации и большего понимания циклов, которые мы рассмотрим, приведу вот такую картинку:
Сейчас изучим два цикла, как я уже говорил. Если набрать в Visual Studio слово Do, то она вам сама подскажет, какие циклы существуют:
DO … LOOP UNTIL.
Этот цикл обычно называют с постусловием. Делу тут во в чем – в основе данного цилка (как это и понятно из его названия) лежит безусловный цикл Do … Loop. Как мы помним – он будет выполняться бесконечное число раз, если не использовать условие выхода Exit. Каждый раз делать так не очень удобно. Поэтому и придумали два цикла, которые мы рассмотрим ниже. В цикле Do … Loop Until – условие находится после всех операторов (после слова Until) – именно поэтому он и назван – цикл с постусловием («пост» - после всего кода цикла). Условно, этот цикл можно показать так:
Do
Действие
Loop Until Условие
Из этого описания все должно быть понятно. Действие будет выполняться до тех пор, пока Условие не станет истинным (то есть – не примет значение True). Кстати, минимально – этот цикл выполниться один раз, даже если условие будет верным. Имейте это ввиду при программировании с использование Do … Loop Until.
Теперь давайте рассмотрим пример работы данного цикла. Тут будет все очень просто – в цикле увеличиваем переменную на пять. Условие выхода – когда эта переменная станет больше 100. На форме расположите TextBox и кнопку для начала цикла. В обработчик кнопки вставьте следующий код:
Do
number = number + 5
Loop Until (number > 100)
MsgBox(number.ToString)
Вот так – все очень просто. На ум не пришло ничего более интересного, простите уж =) В следующий раз постараюсь реабилитироваться.
DO WHILE … LOOP
Этот цикл похож на предыдущий, только называется он цикл с предусловием. То есть – условие стоит в начале. Если условие верно – цикл будет выполняться. Тоже не забывайте об этом. Представим данный цикл условно:
Do While Условие
Действие
Loop
Учтите, что в цикле Do … Loop Until – цикл завершался, когда условие становилось верным. А здесь – цикл выполняется, пока условие верно. То есть, для завершения – необходимо, чтобы условие стало ложным.
И опять рассмотрим пример данного цикла. Предположим, нам необходимо выполнять какое-либо действие тысячу раз. Мы не знаем, сколько раз оно уже было выполнено, знаем только то, что после каждой итерации переменная number увеличивается. Нам надо подсчитать, сколько шагов будет выполнено данным циклом. Поэтому, чтобы проверить, выполнился ли наш цикл тысячу раз, мы сначала должны эту переменную проверить и, либо продолжить выполнение цикла – либо завершить его (форма абсолютно такая же, в TextBox введем состояние number, а в обработчике кнопки напишите):
Dim number, shag As Integer
number = Convert.ToInt32(TextBox1.Text)
shag = 0
Do While number < 1000
number = number + 1
shag = shag + 1
Loop
MsgBox(shag.ToString)
И с этим циклом разобрались. Пока я больше не планирую ничего писать про другие конструкции Visual Basic.NET. Но, возможно – в будущем продолжу.
А теперь немного веселья. Данная статья является у меня в блоге сотой, так что поздравьте меня с этим событием:
И:
Надеюсь, эти сто статей были интересными. Мне понравились не все, но были и такие, которые я бы почитал еще несколько раз. Чтобы порадовать меня – подписывайтесь на RSS и чаще посещайте блог ))
О как мне знакомы все эти схемы, прямо как в детстве)
ОтветитьУдалитьА 100 - это уже юбилей