Oracle PL/SQL FOR LOOP із прикладом

Що таке цикл For?

Інструкція «ЦИКЛ FOR» найкраще підходить, якщо ви хочете виконати код відому кількість разів, а не на основі якихось інших умов.

У цьому циклі буде вказано нижню межу та верхню межу, і поки змінна циклу знаходиться в межах цього діапазону, цикл виконуватиметься.

Змінна циклу є самоінкрементною, тому в цьому циклі не потрібна явна операція збільшення. Змінну циклу не потрібно оголошувати, оскільки вона оголошується неявно.

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" позначає початок циклу, і оголошено змінну_циклу "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" як типу даних "ЧИСЛО".
  • Рядок коду 4: Друк заяви «Програма запущена».
  • Рядок коду 5: Ключове слово "FOR" позначає початок циклу, і оголошено змінну_циклу "a". Тепер він матиме значення від 1 до 3
  • Рядок коду 7: Кожного разу скидання значення «b» на «1».
  • Рядок коду 8: Внутрішній поки петля перевіряє умову a>=b.
  • Рядок коду 10: Друкує значення 'a', якщо задовольняється зазначена вище умова.
  • Рядок коду 14: Друк повідомлення «Програма виконана»

Підсумки

Петля Цикл FOR
Критерії ВИХОДУ Вийдіть, коли лічильник досягне межі
Використання Добре використовувати, коли відома кількість циклів, які потрібно виконати.