Учебники

12) Oracle PL / SQL FOR LOOP

Что такое для петли?

Оператор «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. Для этого мы выполним следующий код.

Циклы в PL / SQL

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: печать заявления «Программа выполнена»

Вложенные циклы

Операторы цикла также могут быть вложенными. Внешний и внутренний цикл могут быть разных типов. Во вложенном цикле для каждого значения итерации внешнего цикла внутренний цикл будет выполнен полностью.

Циклы в PL / SQL

LOOP -outer
<execution block starts>
LOOP — inner
<execution_part> 
END LOOP; 
<execution_block_ends> 
END LOOP; 

Синтаксис Объяснение:

  • В приведенном выше синтаксисе внешний цикл имеет еще один цикл внутри.
  • Циклы могут быть любых типов, и часть функциональности исполнения одинакова.

Пример 1 : В этом примере мы собираемся напечатать число от 1 до 3, используя оператор цикла FOR. Каждое число будет напечатано столько раз, сколько его значение. Для этого мы выполним следующий код.

Циклы в PL / SQL

Циклы в PL / SQL

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: печать заявления «Программа выполнена»

Резюме

петля Для цикла
Критерии ВЫХОДА Выход, когда счетчик достигает предела
Применение Хорошо использовать, когда известно количество циклов, которые нужно выполнить.