Все – начинаю с сегодняшнего дня публикации о управляющих конструкциях языка PL/SQL. Давно я уже их обещал – и вот выполняю, наконец-то, свои обещания. Как я уже говорил в своем плане – надо опубликовать пять статей о языке PL/SQL – почти о всех управляющих конструкциях удастся рассказать. Сегодня речь пойдет (как вы могли понять) о конструкции IF-THEN-ELSE-ELSIF.
Можно, кстати, о приготовлениях к свадьбе поговорить (я же уже говорил вам о ней?). Сейчас дополнения к свадьбе ищу, например – недавно узнал о том, что есть очень хороший свадебный фотограф, услуги его дешевы, а качество – очень высоко. Можете присмотреться (у кого тоже свадьба скоро).
Управляющие стрктуры:
Как известно – PL/SQL является процедурным языком – поэтому использует процедурные конструкции такие, как циклы, условия и последовательности.
Условное управление (IF и CASE):
Оператор IF позволяет выплонять последовательность операторов в зависимости от заданного условия. Существует три формы этого оператора: IF-THEN, IF-THEN-ELSE и IF-THEN-ELSIF.
Оператор CASE представляет собой компактный способ проверки одного условия и выбора между несколькими альтернативными действиями, лучше применять этот оператор тогда, когда идет выбор между тремя и более альтернативными операторами.
IF-THEN:
Простейшая форма оператора IF связывает условие с последовательностью операторов, заключенных между ключевыми словами THEN и END IF (но не ENDIF).
Последовательность операторов выполняется только если условие истинно. Если условие ложно или не определен, оператор IF не выполняет никаких действий. В обоих случаях действие передается следующему оператору.
IF-THEN-ELSE:
Во вторую форму оператора IF добавлено ключевое слово ELSE, за которым следует альтернативная последовательность операторов.
Операторы в предложении ELSE выполняются только если условие имеет значение FALSE или неопределенное значение NULL. Таким образом, предложение IF-THEN-ELSE обеспечивает выполнение какой-либо из двух последовательностей операторов.
IF-THEN-ELSIF:
Иногда необходимо выбрать действие из нескольких взаимоисключающих альтернатив. Для этого необходимо воспользоваться ключевым словом ELSIF (слитно и без «Е» в конце первого слова).
Если первое условие имеет значение FALSE или NULL, предложение ELSIF проверяет второе условие. Оператор IF может иметь любое количество предложений ELSIF. Последнее предложение ELSE не обязательно. Условия проверяются последовательно сверху вниз. Если какое-либо условие истинно, выполняется связанная с ним последовательность операторов и управление передается следующему оператору. Если все условия ложны или не определены – управление передается операторам, следующим за ключевым словом ELSE.
А теперь приведу один общий пример для всех данных видов оператора ELSE. В нем я буду рассматривать только последнюю запись данного оператора, но – два первых очень простые, сами все поймете:
BEGIN
IF i BETWEEN 0 AND 100
THEN dbms_output.put_line(‘if, i = ’ || TO_CHAR(i));
ELSIF i BETWEEN 101 AND 1000
THEN dbms_output.put_line(‘elsif1, i = ’ || TO_CHAR(i));
ELSIF i BETWEEN 1001 AND 10000
THEN dbms_output.put_line(‘elsif2, i = ’ || TO_CHAR(i));
ELSE
dbms_output.put_line(‘Неизвестно чему равно i’);
END IF;
Комментариев нет:
Отправить комментарий