Главная страница
Навигация по странице:

  • Глава 24. Создание циклов 249

  • Часть V. Создание разветвлений и циклов

  • Циклы Do-Loop Until Эти циклы продолжают выполнение итераций до тех пор, пока проверяемое условие не станет истинным. Выглядят они так: Глава 24. Создание циклов 251

  • 252 Часть V. Создание разветвлений и циклов

  • Глава 24. Создание циклов

  • Тест на проверку полученных вами знаний

  • Глава 25. Циклы, которые умеют считать 255

  • 256 Часть V. Создание разветвлений и циклов

  • Visual Basic .NET для чайников - У. Вонг. Visual Basic .NET для чайников - У. Диалектикамосква СанктПетербург Киев


    Скачать 7.1 Mb.
    НазваниеДиалектикамосква СанктПетербург Киев
    АнкорVisual Basic .NET для чайников - У. Вонг.pdf
    Дата29.05.2018
    Размер7.1 Mb.
    Формат файлаpdf
    Имя файлаVisual Basic .NET для чайников - У. Вонг.pdf
    ТипКнига
    #19767
    КатегорияИнформатика. Вычислительная техника
    страница23 из 30
    1   ...   19   20   21   22   23   24   25   26   ...   30
    Глава 23. Оператор выбора Select Case
    247

    Глава 24
    Создание циклов
    Циклы, которые могут не выполняться
    Циклы, выполняющие хотя бы одну итерацию
    Сравнение свойств разных циклов необходимо, чтобы программа выполнила несколько раз подряд один и тот же набор инструкций. Писать один и тот же код несколько раз подряд неразумно. Ведь можно же написать набор необходимых инструкций один раз, а затем дать указание компью- теру выполнить его нужное количество раз.
    Код, содержащий инструкции для многократного повторения, называется циклом. В
    Visual Basic различают циклы трех типов:
    циклы, которые могут не выполняться;
    |
    циклы, набор инструкций которых выполняется по крайней мере раз;
    циклы, которые выполняются фиксированное количество раз.
    В этой главе рассматриваются циклы первых двух типов. Циклы третьего типа, выпол- няющиеся фиксированное количество раз, описаны в главе 25.
    Циклы заставляют компьютер выполнять одни и те же инструкции снова и снова. Как же определить, сколько именно должно быть повторений? На помощь опять приходят логиче- ские значения (о них было рассказано в главе 22).
    Visual Basic перед выполнением каждой итерации проверяет условие и продолжает выполнение цикла до тех пор, пока ему соответствует логическое значение True, или, наобо- рот, до тех пор, пока ему соответствует логическое значение F a l s e . Если нужно выполнять цикл, пока условию соответствует значение True, используется цикл Do-While
    Если же нужно выполнять цикл, пока условию соответствует значение
    False, используется цикл Do-Until
    Если условию цикла Do-While сразу же соответствует логическое значение False, на- бор его команд выполняться не будет и программа перейдет к выполнению следующих кодов.
    Точно так же, если условию цикла Do-Until сразу же соответствует логическое значение
    True, набор команд этого цикла ни разу выполнен не будет.
    Циклы Do-While
    Эти циклы продолжают выполняться до тех пор, пока условию соответствует логическое значение
    Их код выглядит так:
    Глава 24. Создание циклов 249

    Do While Условие ' Набор инструкций
    Loop
    Как только Visual Basic видит такой код, он проверяет, какое логическое значение соответствует переменной или выражению, выполняющим роль условия, и если условию со- ответствует значение True, выполняется набор инструкций.
    Рассмотрим это на примере:
    Dim Счетчик
    I n t e g e r
    Счетчик
    О
    Do While Счетчик <> 5
    Счетчик = Счетчик + 1
    =
    Loop
    Вот как Visual Basic будет выполнять этот код.
    В первой строке создается переменная типа I n t e g e r и ей присваивается имя
    Счетчик.
    2. Во второй строке переменной Счетчик присваивается нулевое значение.
    3. Третья строка говорит Visual Basic
    "Пока значение переменной Счет- чик не будет равно числу 5, выполняй снова и снова набранные между строками Do While и Loop".
    4. В четвертой строке к значению переменной Счетчик прибавляется число 1.
    5. Пятая строка говорит: "Возьми значение переменной Счетчик, преобразуй его в текстовое значение и присвой свойству Text объекта
    6. Шестая строка говорит:
    этом список инструкций заканчивается. Возвра- щайся к третьей строке и снова проверяй условие".
    На каждой итерации (итерация — одноразовое выполнение набора команд) значение пе- ременной Счетчик увеличивается на единицу. В тот момент, когда оно станет равным 5, ус- ловие Счетчик <> 5 примет значение F a l s e и выполнение цикла завершится.
    Если по какой-то причине условие постоянно будет выполняться (и ему все время будет соответствовать значение True), инструкции цикла будут повто- ряться снова и снова, в результате чего программа "зависнет". Чтобы этого не происходило, всегда добавляйте к набору команд цикла по крайней мере одну инструкцию, которая рано или поздно сможет сделать так, чтобы условие пе- рестало
    Циклы
    Эти циклы проверяют условие и, если оно ложно, выполняют один и тот же набор ко- манд, пока условие не станет истинным. Выглядят они так:
    Do Until Условие ' Набор инструкций
    Loop
    250
    Часть V. Создание разветвлений и циклов

    Если Visual Basic видит такой код, он проверяет условие и, если оно ложно, выпол- няет заданный набор инструкций, а затем снова проверяет условие. Как только условие ста- новится истинным, выполнение цикла прекращается.
    Рассмотрим такой пример:
    Dim Счетчик as I n t e g e r
    Счетчик = О
    Do Until Счетчик > 4
    Счетчик = Счетчик + 1
    Loop
    Вот как этот код будет интерпретирован Visual Basic
    1. В первой строке создается переменная типа I n t e g e r и ей присваивается имя
    Счетчик.
    2. Во второй строке переменной Счетчик присваивается нулевое значение.
    3. Третья строка говорит: "Это первая строка цикла тех пор пока условие Счетчик > 4 ложно, продолжай выполнять инструкции, набранные между этой строкой и строкой Loop. Как только условие станет истинным
    (это произойдет когда переменная Счетчик примет значение 5), заканчивай выполнение этого цикла и переходи к следующим кодам программы".
    4. В четвертой строке значение переменной Счетчик увеличивается на единицу.
    5.* Пятая строка говорит: "На этом набор инструкций цикла заканчивается. Воз- вращайся опять к проверке условия".
    На каждой итерации значение переменной Счетчик увеличивается на единицу. Как толь- ко оно станет равным 5, условие примет истинное значение и выполнение цикла прекратится.
    Чтобы цикл не превратился в бесконечный и программа не зависла, убедитесь, что по крайней мере одна из команд цикла может через какое-то количество итераций сделать условие истинным.
    Циклы, выполняющие не менее
    одной
    Иногда возникает необходимость, чтобы набор инструкций цикла выполнялся хотя бы один раз. Циклы Do-While и Do-Until для решения такой задачи не подойдут, поскольку они вначале проверяют условие, а затем могут выполнить или не выполнить набор инструк- ций. В Visual Basic есть еще два типа циклов, которые предназначены для решения именно таких задач. Они вначале выполняют одну итерацию, затем проверяют условие и, в зависимости от того, выполняется оно или нет, переходят к новой итерации или завершают свою работу.
    Циклы Do-Loop Until
    Эти циклы продолжают выполнение итераций до тех пор, пока проверяемое условие не станет истинным. Выглядят они так:
    Глава 24. Создание циклов 251

    Do
    ' Набор инструкций
    Loop U n t i l Условие
    Такой код говорит Visual Basic
    "Выполни набор инструкций, затем усло- вие. Если оно истинно, переходи к следующим кодам программы, а если ложно, начинай все сначала
    1
    '.
    Рассмотрим следующий пример:
    Dim Счетчик As
    Счетчик - О
    Do
    Счетчик
    Счетчик + 1
    Loop Until Счетчик > 4
    Вот что этот код означает для Visual Basic
    В первой строке создается переменная типа I n t e g e r и ей присваивается имя
    Счетчик.
    2. Во второй строке переменной Счетчик присваивается нулевое значение.
    3. Третья строка говорит:
    начинается выполнение инструкций цикла
    Do-Loop U n t i l " .
    4. В четвертой строке значение переменной Счетчик увеличивается на единицу.
    5. Пятая строка говорит Visual Basic
    "На этом выполнение набора инст- рукций цикла Do-Loop U n t i l завершается. Проверь, какое логическое зна- чение соответствует условию, представленному выражением Счетчик > 4.
    Если False, переходи к строке, с которой начинается этот цикл, и снова вы- полняй набор его инструкций, если True — переходи к реализации следую- щих кодов программы".
    При каждом повторном выполнении набора инструкций цикла значение переменной
    Счетчик увеличивается на единицу. Когда оно станет равным 5, условие будет считаться ис- тинным, а выполнение цикла остановится.
    Уоедитесь, что повторные итерации рано или поздно приведут к что прове- ряемое условие станет истинным. В противном случае цикл будет выполняться до бесконечности и программа просто зависнет.
    Циклы Do-Loop While
    Подобные циклы нередко можно встретить в повседневной жизни. Суть их в том, что они повторяются до тех пор, пока выполняется какое-то условие. Например, если ребенку насы- пать в тарелку его любимую кашу и дать ложку, то он будет опускать ложку в наби- рать кашу и возвращать ложку себе в рот. Этот "цикл" будет повторяться до тех пор, пока в тарелке будет оставаться каша. Как только каша закончится, выполнение цикла прекратится.
    Ребенок, конечно, может потребовать добавку, но это будет уже другой цикл.
    В кодах BASIC цикл Do-Loop While выглядит так:
    DO
    '
    инструкций
    Loop While Условие
    252 Часть V. Создание разветвлений и циклов

    Код говорит Visual Basic
    "Выполни набор инструкций и проверь, какое логическое значение соответствует выражению или переменной, выступающим в качестве условия. Если это True, переходи к строке Do и снова выполняй набор инструкций, а если F a l s e — закан- чивай выполнение данного цикла и переходи к следующим кодам программы".
    Проиллюстрируем сказанное таким примером:
    Dim Счетчик As Integer
    Счетчик О
    Do
    Счетчик = Счетчик + 1
    Loop While Счетчик < 5
    Вот как эти коды будут восприняты Visual Basic первой строке создается переменная типа I n t e g e r и ей присваивается имя
    Счетчик.
    2. Во второй строке переменной Счетчик присваивается нулевое значение.
    3. Третья строка говорит: "Отсюда начинается выполнение инструкций цикла
    Do-Loop While".
    4. В четвертой строке значение переменной Счетчик увеличивается на единицу.
    5. Пятая строка говорит Visual Basic этом выполнение набора инст- рукций цикла Do-Loop While завершается. Проверь, какое логическое зна- чение соответствует условию, представленному выражением Счетчик < 5.
    Если таковым является True, переходи к строке, с которой начинается этот цикл, и снова выполняй набор его инструкций. Но если это значение False,
    переходи к выполнению следующих кодов программы".
    При каждом повторном выполнении набора инструкций цикла значение переменной
    Счетчик увеличивается на единицу. Когда оно станет равным 5, условие перестанет выпол- нятся и цикл будет остановлен.
    Убедитесь, что повторные итерации рано или поздно приведут к тому, что прове- ряемое условие станет ложным. В противном случае программа зависнет.
    Хотя некоторые циклы выглядят очень похожими друг на друга, выполняемые ими дейст- вия заметно различаются. Чтобы не запутаться, имеет смысл выбрать из них один-два и все- гда стараться при написании программы использовать только их. В таком случае вам будет легче писать программу, а другим программистам будет легче читать ее коды.
    Если выполнение инструкций цикла при определенных условиях может быть пропущено,
    выберите для себя один из этих двух циклов:
    Do While Условие
    Набор инструкций
    Loop
    Do U n t i l Условие
    Набор инструкций
    Loop
    Но если набор инструкций должен быть выполнен хотя бы один раз, выберите для себя один из этих двух циклов:
    Глава 24. Создание циклов
    253

    Do
    ' Набор инструкций
    Loop Until Условие
    Do
    Набор инструкций
    Loop While
    Инструкции любого цикла должны содержать в себе команды, которые через ка- кое-то количество должны изменять проверяемое условие и заканчивать таким образом выполнение цикла.
    Тест на проверку полученных вами знаний
    1. Чем циклы отличаются от цик- лов Do-While?
    а. Циклы более правильные, по- скольку предпочитают истинные условия,
    в то время как циклам больше нравятся ложные условия.
    Ничем не отличаются, разве что пишутся по-разному.
    в. Цикл Do-While прекращает выполне- ние итераций, как только проверяемое становится ложным, а цикл Do- прекращает свою работу сразу после того, как проверяемое условие становится истинным.
    А
    они одинаковые.
    2. Почему цикл Do-While может ни разу не вы- набор своих инструкций?
    а. Потому что вы просто забудете написать эти инструкции.
    б. Это недоработка Visual Basic иногда цикл выполнять свои инструкции.
    в. Потому, что условие проверяется до выпол- нения первой итерации, а если ему сразу со- ответствует значение F a l s e , Visual Basic переходит к выполнению следующих кодов программы.
    г. Свой вариант.
    254
    Часть V. Создание разветвлений и циклов

    Глава 25
    Циклы, которые умеют считать
    Цикл
    Прямой и обратный порядок отсчета
    Ключевое слово Step иклы, рассмотренные в главе 24, выполняются некоторое количество раз — до тех пор, пока проверяемое условие не станет истинным или ложным. Но довольно часто возникают ситуации, когда вы заранее можете точно сказать, сколько именно должно быть выполнено итераций. Конечно, используя циклы Do-While и также можно было бы создать код, который выполнял бы определенный набор инструкций заданное количество раз. Но зачем заново изобретать велосипед, если можно просто воспользоваться циклом специально предназначенным для подобных целей.
    Выглядит цикл For-Next следующим образом:
    Счетчик As I n t e g e r
    For Счетчик = Начало
    Конец Step X
    Next Счетчик
    Здесь словом Счетчик обозначена переменная, содержащая числовое значение. Нача- ло — это значение, присваиваемое переменной Счетчик перед началом выполнения первой итерации.
    это значение переменной Счетчик, при котором набор инструкций вы- полняется последний раз. Буквой X обозначено число, которое добавляется к значению пере- менной Счетчик при выполнении каждой итерации (другими словами,
    это шаг, с кото- рым изменяется значение переменной Счетчик). Если ключевое слово Step и число X опу- шены, шаг принимается равным единице.
    цикл
    Если вам нужно, чтобы набор инструкций был выполнен ровно три раза, наберите такой код:
    Dim X
    I n t e g e r
    For X = 1 3
    Набор инструкций
    Next X
    Вот как работает этот код.
    1. Первой строкой создается переменная типа I n t e g e r и ей присваивается имя X.
    2. Вторая строка говорит компьютеру: "Присвой переменой X значение 1. Вы- полняй этот цикл до тех пор, пока переменная X будет принимать значения 1,
    2 или 3. Если переменная X примет какое-нибудь другое значение (например,
    прекрати выполнение данного цикла.
    Глава 25. Циклы, которые умеют считать 255

    3. В третьей строке вы можете набрать одну или несколько которые будут выполняться па каждой итерации. В числе этих инструкций могут быть также и другие циклы For-Next.
    4. Четвертая строка говорит: "Присвой переменной X следующее значение
    (поскольку в данном случае шаг установлен по умолчанию, т.е. равен единице,
    следующее значение будет на единицу больше предыдущего) и снова перехо- ди ко второй строке".
    Итак, следующей строкой определяется цикл, набор инструкций которого будет выполнен три раза:
    For X = 1 3
    Поскольку шаг, с которым изменяется значение переменной X, по умолчанию равен еди- нице, количество итераций в конечном счете определяется разностью между числом, которое присваивается переменной X перед выполнением цикла, и числом, после присвоения которо- го переменной X выполняется последняя итерация.
    Для большей ясности продемонстрируем это на примере:
    For 1209 1211
    ' Набор инструкций
    Next X
    Хотя здесь значения переменной X совсем другие, чем в первом примере, набор инструк- ций также будет выполнен ровно три раза:
    • первая итерация, X = 1209;
    • вторая итерация, X = 1210;
    • третья итерация, X = 1211.
    Применять такие нестандартные числа имеет смысл в том случае, если они как-то соотносятся с данными, используемыми вашей программой. Например, они могут быть порядковыми номерами клиентов из вашей базы данных:
    For
    = 1250 То 1290
    ' На каждой итерации обрабатывается информация по ' клиенту, чей код соответствует присвоенному в ' данный момент значению переменной КодКлиента
    Next КодКлиента
    В этом цикле значение переменной КодКлиента используется не только для отсчета ко- личества но и для ссылки на информацию в базе данных о конкретном клиенте.
    значения переменной будут использоваться только для отсчета количества итераций, начинайте таковой с числа 1, чтобы легче было понять, сколько именно итераций будет выполнено. Например, если инструкции должны повторяться пять раз, наберите код
    For X = 1
    ' Набор инструкций
    Next X
    И только если эти значения имеют какой-то дополнительный смысл в отношении информации, обрабатываемой в процессе выполнения цикла, используйте коды на- подобие следующих:
    256 Часть V. Создание разветвлений и циклов

    = 3213 3218
    ' Набор инструкций
    и
    Обычно при выполнении циклов For-Next значение переменной, которая используется в
    счетчика, увеличивается на единицу после каждой итерации. Но шаг можно изме- нить и увеличивать значение сразу на 5, 10 или, скажем, на 27 единиц.
    сделать это,
    нужно в коды добавить ключевое слово Step и указать величину шага, например:
    Dim Счетчик As
    For Счетчик =
    end Step шаг
    Набор инструкций
    Next Счетчик слово Step говорит компьютеру: "Вместо того чтобы изменять значение пере-
    Счетчик с шагом 1, изменяй ее на число, указанное после меня". Если вы хотите,
    чтобы шаг равнялся, предположим, числу 16, наберите такой код:
    X
    Integer
    For X = 0 32 Step 16
    '
    инструкций
    X
    В результате будет выполнено три итерации:
    • первая итерация. X = 0;
    • вторая итерация, X = 16;
    • третья итерация, X
    32.
    При желании можно создать цикл, который будет отсчитывать итерации в обратном по- рядке. Например, чтобы отсчитать три итерации в обратном порядке, наберите такой код:
    Dim X As I n t e g e r
    For X ••= 3 1 Step -1
    ' Набор инструкций
    Next X
    Вот как программа будет выполнять его.
    1.
    создается переменная X типа I n t e g e r .
    2. Вторая строка говорит компьютеру: "Присвой переменной X значение 3 и от- считывай итерации в обратном порядке до числа 1 с шагом
    3. В третьей строке содержится набор инструкций, которые выполняются на ка- ждой итерации.
    4. Четвертая строка говорит:
    значение переменной X на единицу и,
    если оно не равно числу 1, снова выполняй набор инструкций".
    Хотя
    Visual Basic совершенно безразлично, с каким шагом и в каком порядке вы производите отсчет итераций, старайтесь использовать для этого простейшие варианты, что- бы вам и другим людям, которые будут смотреть вашей программы, легче было понять,
    сколько именно итераций будет выполнено.
    1   ...   19   20   21   22   23   24   25   26   ...   30


    написать администратору сайта