Что такое для петли?
Оператор «FOR LOOP» лучше всего подходит, когда вы хотите выполнить код для известного числа раз, а не на основе некоторых других условий.
В этом цикле будет указан нижний предел и верхний предел, и пока переменная цикла находится между этим диапазоном, цикл будет выполняться.
Переменная цикла является самоинкрементной, поэтому в этом цикле не требуется явная операция приращения. Переменная цикла не должна быть объявлена, так как она объявлена неявно.
FOR <loop_variable> in <lower_limit> .. <higher_limit> LOOP <execution block starts> . . . <execution_block_ends> END LOOP;
Синтаксис Объяснение:
- В приведенном выше синтаксисе ключевое слово «FOR» обозначает начало цикла, а «END LOOP» обозначает конец цикла.
- Переменная цикла вычисляется каждый раз перед выполнением исполнительной части.
- Блок выполнения содержит весь код, который должен быть выполнен. Часть выполнения может содержать любой оператор выполнения.
- Loop_variable объявляется неявно во время выполнения всего цикла, и область действия loop_variable будет только внутри этого цикла.
- Если переменная цикла вышла из диапазона, управление выйдет из цикла.
- Цикл можно заставить работать в обратном порядке, добавив ключевое слово REVERSE перед lower_limit.
Пример 1 : В этом примере мы собираемся напечатать число от 1 до 5, используя оператор цикла FOR. Для этого мы выполним следующий код.
BEGIN dbms Qutput.put linef.Prp.gram started.' ); FOR a IN 1 .. 5 LOOP dbms_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 будет продолжать выполняться до тех пор, пока «а» не достигнет значения 6, так как условие не будет выполнено, и элемент управления выйдет из цикла.
- Строка кода 7: печать заявления «Программа выполнена»
Вложенные циклы
Операторы цикла также могут быть вложенными. Внешний и внутренний цикл могут быть разных типов. Во вложенном цикле для каждого значения итерации внешнего цикла внутренний цикл будет выполнен полностью.
LOOP -outer <execution block starts> LOOP — inner <execution_part> END LOOP; <execution_block_ends> END LOOP;
Синтаксис Объяснение:
- В приведенном выше синтаксисе внешний цикл имеет еще один цикл внутри.
- Циклы могут быть любых типов, и часть функциональности исполнения одинакова.
Пример 1 : В этом примере мы собираемся напечатать число от 1 до 3, используя оператор цикла FOR. Каждое число будет напечатано столько раз, сколько его значение. Для этого мы выполним следующий код.
DECLARE b NUMBER; BEGIN dbms output put line(‘Program started' ); FOR a IN 1..3 LOOP b:=1; WHILE (a>=b) LOOP dbms 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: печать заявления «Программа выполнена»
Резюме
петля | Для цикла |
Критерии ВЫХОДА | Выход, когда счетчик достигает предела |
Применение | Хорошо использовать, когда известно количество циклов, которые нужно выполнить. |