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

Какво е 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. За целта ще изпълним следния код.

Oracle PL/SQL FOR LOOP

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: Отпечатва стойността на 'a'.
  • Кодов ред 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' маркира началото на цикъла и се декларира loop_variable 'a'. Сега ще има стойност, започваща от 1 до 3
  • Кодов ред 7: Нулиране на стойността на 'b' на '1' всеки път.
  • Кодов ред 8: Вътрешен докато цикъл проверява за условието a>=b.
  • Кодов ред 10: Отпечатва стойността на 'a', стига горното условие да е изпълнено.
  • Кодов ред 14: Отпечатване на съобщението „Програмата е завършена“

Oбобщение

Контур FOR цикъл
Критерии за ИЗХОД Излезте, когато броячът достигне лимита
употреба Добре е да се използва, когато е известен броят на циклите, които трябва да бъдат изпълнени.

Обобщете тази публикация с: