Вчера я познакомил вас с классом StringBuilder языка
Visual Basic. Это была первая статья в двухнедельной серии публикаций по
программированию. Сегодня, а точнее – прямо сейчас будет опубликована уже
вторая статья в этой серии. Посвящена она будет языку PL/SQL и использованию
оператора FOR-LOOP (цикл со счетчиком).
Что-то эта неделя очень активно проходит – стараюсь публиковать
по две статьи в день (чтобы наверстать упущенное время). Правда это довольно
сильно вытягивает силы, посмотрим – к чему приведет такой марафон. Думаю – что стоит
с такой частой публикацией статей завязывать, а то и совсем публиковать могу
перестать.
Использование
оператора FOR-LOOP:
Количество итераций (повторений) цикла FOR-LOOP
указывается с помощью диапазона целых чисел. То есть, в отличие от других
циклов – количество повторений данного цикла должно быть известно еще до входа
в него. Диапазон задается с помощью специального оператора диапазона (нижнее
двоеточие – «..»). Границы диапазона вычисляются лишь единожды – при первом
входе в цикл FOR (после этого границы не пересматриваются). Если и нижняя и
верхняя границы диапазона равны друг другу – то цикл выполняется лишь один раз.
В следующем примере цикл повторяется десять раз (от
одного до десяти), счетчик после каждой итерации увеличивается на единицу.
Чтобы не мудрить – я вывожу в текстовом виде нынешнее значение счетчика:
BEGIN
FOR i IN 1 .. 10
LOOP
dbms_output.put_line('Значение i = '||to_char(i));
END LOOP;
END;
В результате получится следующее:
Значение i = 1
Значение i = 2
Значение i = 3
Значение i = 4
Значение i = 5
Значение i = 6
Значение i = 7
Значение i = 8
Значение i = 9
Значение i = 10
По умолчанию, пои выполнении цикла значения счетчика
увеличиваются (от минимальной границы до максимальной). Но иногда необходимо
чтобы счетчик не увеличивался – а уменьшался от максимального до минимального
значения. Сделать это можно с помощью ключевого слова REVERSE (и данный счетчик
будет работать в обратом направлении). Но – границы диапазона надо располагать
точно также (как и в первом варианте – сначала минимальная и, через двоеточие,
максимальная граница):
Для понимания ключевого слова REVERSE воспользуюсь
тем же самым примером (что представлен выше), но результат его работы будет
другим:
BEGIN
FOR i IN REVERSE 1 .. 10
LOOP
dbms_output.put_line('Значение i = '||to_char(i));
END LOOP;
END;
В результате получится следующее:
Значение i = 10
Значение i = 9
Значение i = 8
Значение i = 7
Значение i = 6
Значение i = 5
Значение i = 4
Значение i = 3
Значение i = 2
Значение i = 1
В самом теле цикла можно ссылаться на
переменную-счетчик (как я например это делаю я). Но присваивать какие-либо
значения этому счетчику – нельзя, если вы так сделаете – это приведет к
возникновению ошибки.
На этом описание работы с циклом FOR-LOOP я закончу.
В следующий раз (наверно – это будет на этой неделе, а может быть – в начале
следующей) я расскажу о работе с операторами GOTO и NULL. И на этом закончу
рассказ о управляющих конструкциях языка PL/SQL. И перейду уже к новой теме
(пока не буду рассказывать к какой).
Комментариев нет:
Отправить комментарий