›  ›  ›  › Команда CONTINUE в циклах PL/SQL Oracle

Команда CONTINUE в циклах PL/SQL Oracle

Команда CONTINUE используется для выхода из текущей итерации цикла и немедленного перехода к следующей итерации. Как и EXIT, эта команда существует в двух формах: безусловной (CONTINUE) и условной (CONTINUE WHEN).

Простой пример использования CONTINUE WHEN для пропуска итераций с четными значениями счетчика:

BEGIN
   FOR l_index IN 1 .. 10
   LOOP
      CONTINUE WHEN MOD (l_index, 2) = 0;
      DBMS_OUTPUT.PUT_LINE ('Счетчик = ' || TO_CHAR (l_index));
   END LOOP;
END;
/

/*
Результат:
Счетчик = 1
Счетчик = 3
Счетчик = 5
Счетчик = 7
Счетчик = 9
*/

Конечно, того же эффекта можно добиться при помощи команды IF, но команда CONTINUE предоставляет более элегантный и понятный способ представления реализуемой логики.

Команда CONTINUE чаще всего применяется для модификации существующего кода с внесением целенаправленных изменений и немедленным выходом из цикла для предотвращения побочных эффектов.

Также команда CONTINUE пригодится для завершения внутренних циклов и немедленного продолжения следующей итерации внешнего цикла. Для этого циклам присваиваются имена при помощи меток. Пример:

BEGIN
   <<outer>>
   FOR outer_index IN 1 .. 5
   LOOP
      DBMS_OUTPUT.PUT_LINE (
         'Внешний счетчик = ' || TO_CHAR (outer_index));
      <<inner>>
      FOR inner_index IN 1 .. 5
      LOOP
         DBMS_OUTPUT.PUT_LINE (
            '  Внутренний счетчик = ' || TO_CHAR (inner_index));
         CONTINUE outer;
      END LOOP inner;
   END LOOP outer;
END;
/

/*
Результат:
Внешний счетчик = 1
  Внутренний счетчик = 1
Внешний счетчик = 2
  Внутренний счетчик = 1
Внешний счетчик = 3
  Внутренний счетчик = 1
Внешний счетчик = 4
  Внутренний счетчик = 1
Внешний счетчик = 5
  Внутренний счетчик = 1
*/

Метки: , , .

Записи по теме

Добавить комментарий

Ваш адрес email не будет опубликован.