Что такое цикл?
Оператор FOR LOOP лучше всего подходит, если вы хотите выполнить код известное количество раз, а не на основе каких-либо других условий.
В этом цикле будут указаны нижний предел и верхний предел, и пока переменная цикла находится между этим диапазоном, цикл будет выполняться.
Переменная цикла является самоприращивающейся, поэтому в этом цикле не требуется явной операции увеличения. Переменную цикла объявлять не нужно, так как она объявляется неявно.
FORОбъяснение синтаксиса:in … LOOP … END LOOP;
- В приведенном выше синтаксисе ключевое слово FOR отмечает начало цикла, а END LOOP отмечает конец цикла.
- Переменная цикла оценивается каждый раз перед выполнением части выполнения.
- Блок выполнения содержит весь код, который необходимо выполнить. Часть выполнения может содержать любой оператор выполнения.
- Переменная loop_variable объявляется неявно во время выполнения всего цикла, и область действия этой переменной loop_variable будет только внутри этого цикла.
- Если переменная цикла вышла за пределы диапазона, управление выйдет из цикла.
- Цикл можно заставить работать в обратном порядке, добавив ключевое слово REVERSE перед lower_limit.
Пример 1 : В этом примере мы собираемся напечатать число от 1 до 5, используя оператор цикла FOR. Для этого мы выполним следующий код.
BEGINdbms Qutput.put linef.Prp.gram started.' );FOR a IN 1… 5LOOPdbms_output.put_line(a);END LOOP:dbms_output.put_iine('Program completed.');END;/
Пояснение к коду:
- Строка кода 2 : Печать оператора «Программа запущена».
- Строка кода 3: ключевое слово «FOR» отмечает начало цикла, и объявляется loop_variable «a». Теперь он будет иметь значение от 1 до 5.
- Строка кода 5: выводит значение «а».
- Строка кода 6: Ключевое слово END LOOP отмечает конец исполнительного блока.
- Код из строки 5 будет продолжать выполняться до тех пор, пока 'a' не достигнет значения 6, поскольку условие не выполняется, и элемент управления ВЫХОДИТ из цикла.
- Строка кода 7: Печать оператора "Программа завершена"
Вложенные циклы
Операторы цикла также могут быть вложенными. Внешний и внутренний цикл могут быть разных типов. Во вложенном цикле для каждого значения итерации внешнего цикла внутренний цикл будет выполняться полностью.
LOOP -outerОбъяснение синтаксиса:LOOP - inner END LOOP; END LOOP;
- В приведенном выше синтаксисе внешний цикл имеет внутри еще один цикл.
- Циклы могут быть любых типов, и часть функциональности выполнения одинакова.
Пример 1 : В этом примере мы собираемся напечатать число от 1 до 3, используя оператор цикла FOR. Каждое число будет напечатано столько раз, сколько его значение. Для этого мы выполним следующий код.
DECLAREb NUMBER;BEGINdbms output put line(‘Program started' );FOR a IN 1… 3LOOPb:=1;WHILE (a>=b)LOOPdbms output put line(a);b:=b+1;END LOOP; END LOOP; dbms_output.put_line('Program completed' );END;/
Пояснение к коду:
- Строка кода 2 : Объявление переменной 'b' как типа данных 'NUMBER'.
- Строка кода 4 : Печать оператора «Программа запущена».
- Строка кода 5: ключевое слово «FOR» отмечает начало цикла, и объявляется loop_variable «a». Теперь он будет иметь значение от 1 до 3.
- Строка кода 7: каждый раз сбрасывать значение «b» на «1».
- Строка кода 8: Внутренний цикл while проверяет условие a> = b.
- Строка кода 10: выводит значение «а», если выполняется указанное выше условие.
- Строка кода 14: Печать оператора "Программа завершена"
Резюме
Петля | Цикл FOR |
Критерии выхода | Выйти, когда счетчик достигнет предела |
использование | Хорошо использовать, когда известно количество выполняемых циклов. |