Oracle PL/SQL FOR LOOP с примером

Что такое цикл for?

Оператор FOR LOOP лучше всего подходит, когда вы хотите выполнить код известное количество раз, а не на основе каких-то других условий.

В этом цикле будут указаны нижний и верхний пределы, и пока переменная цикла находится между этим диапазоном, цикл будет выполняться.

Переменная цикла является самоинкрементной, поэтому в этом цикле не требуется явная операция увеличения. Переменную цикла объявлять не требуется, поскольку она объявляется неявно.

FOR <loop_variable> in <lower_limit> .. <higher_limit> 
LOOP
<execution block starts>
.
.
.
<execution_block_ends>
 END LOOP;

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

  • В приведенном выше синтаксисе ключевое слово FOR отмечает начало цикла, а ключевое слово END LOOP отмечает конец цикла.
  • Переменная цикла оценивается каждый раз перед выполнением исполнительной части.
  • Блок выполнения содержит весь код, который необходимо выполнить. Исполняющая часть может содержать любой оператор выполнения.
  • Переменная_цикла объявляется неявно во время выполнения всего цикла, и область действия этой переменной_переменной будет находиться только внутри этого цикла.
  • Если переменная цикла вышла из диапазона, то управление выйдет из цикла.
  • Цикл можно заставить работать в обратном порядке, добавив ключевое слово REVERSE перед low_limit.

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

Oracle 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» отмечает начало цикла и объявляется переменная цикла «a». Теперь оно будет иметь значение от 1 до 5.
  • Строка кода 5: Печатает значение «а».
  • Строка кода 6: Ключевое слово «END LOOP» отмечает конец блока выполнения.
  • Код из строки 5 будет продолжать выполняться до тех пор, пока «a» не достигнет значения 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» отмечает начало цикла и объявляется переменная цикла «a». Теперь оно будет иметь значение от 1 до 3.
  • Строка кода 7: Сброс значения «b» на «1» каждый раз.
  • Строка кода 8: Внутренний в то время как цикл проверяет условие a>=b.
  • Строка кода 10: Печатает значение «a», если вышеуказанное условие выполняется.
  • Строка кода 14: Печать заявления «Программа завершена»

Резюме

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