вторник, 3 мая 2011 г.

Оператор Continue


Не знаю, многие ли слышали об этом, но в Oracle 11g появился оператор, который уже давно существует в других языках - Continue.
Суть у него проста, прервать текущую итерацию и перейти к следующей. Лично я серьёзно им никогда не пользовался, иногда применял в скриптовых языках, но дальше дело не доходило.
В любом случае, встречайте CONTINUE собственной персоной:
BEGIN
 FOR i IN 1..5 LOOP
   dbms_output.put_line('First statement, index is ['||i||'].');
    IF MOD(i,2) = 0 THEN
      CONTINUE;
    END IF;
   dbms_output.put_line('Second statement, index is ['||i||'].');
 END LOOP;
END;

First statement, index is [1].
Second statement, index is [1].
First statement, index is [2].
First statement, index is [3].
Second statement, index is [3].
First statement, index is [4].
First statement, index is [5].
Second statement, index is [5].

Алгоритм прост. Мы перебираем цифры от 1 до 5 и при помощи функции получения остатка от деления MOD проверяем их на чётность. Если остаток равен 0, то выполняем оператор CONTINUE, которые прерывает текущую итерацию и переходит к следующей, если число не чётное, то выполнение цикла продолжается дальше.

Комментариев нет:

Отправить комментарий