Що таке For Loop?
Оператор "FOR LOOP" найкраще підходить тоді, коли потрібно виконати код відому кількість разів, а не на основі інших умов.
У цьому циклі буде вказано нижню і верхню межі, і поки змінна циклу знаходиться між цим діапазоном, цикл буде виконуватися.
Змінна циклу є самоінкрементною, тому в цьому циклі не потрібна явна операція збільшення. Змінну циклу не потрібно оголошувати, оскільки вона оголошується неявно.
FORПояснення синтаксису:in … LOOP … END LOOP;
- У наведеному вище синтаксисі ключове слово "FOR" позначає початок циклу, а "END LOOP" - кінець циклу.
- Змінна циклу обчислюється кожного разу перед виконанням частини виконання.
- Блок виконання містить весь код, який потрібно виконати. Частина виконання може містити будь-яку заяву про виконання.
- Loop_variable оголошується неявно під час виконання всього циклу, і область дії this_variable буде знаходитися лише всередині цього циклу.
- Якщо змінна циклу вийшла з діапазону, тоді керування вийде з циклу.
- Цикл можна змусити працювати в зворотному порядку, додавши ключове слово 'REVERSE' перед нижчим_лімітом.
Приклад 1 : У цьому прикладі ми збираємось надрукувати число від 1 до 5, використовуючи оператор циклу FOR. Для цього ми виконаємо наступний код.
BEGINdbms Qutput.put linef.Prp.gram started.' );FOR a IN 1… 5LOOPdbms_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Пояснення синтаксису:LOOP - inner END LOOP; END LOOP;
- У наведеному вище синтаксисі зовнішній цикл має ще один цикл всередині нього.
- Цикли можуть бути будь-яких типів, а функціональна частина виконання однакова.
Приклад 1 : У цьому прикладі ми збираємось надрукувати число від 1 до 3, використовуючи оператор циклу FOR. Кожне число буде надруковано стільки разів, скільки його значення. Для цього ми виконаємо наступний код.
DECLAREb NUMBER;BEGINdbms output put line(‘Program started' );FOR a IN 1… 3LOOPb:=1;WHILE (a>=b)LOOPdbms output put line(a);b:=b+1;END LOOP; END LOOP; dbms_output.put_line('Program completed' );END;/
Пояснення коду:
- Рядок коду 2 : Оголошення змінної 'b' як типу даних 'NUMBER'.
- Рядок коду 4 : Друк виписки "Програма запущена".
- Рядок коду 5: Ключове слово 'FOR' позначає початок циклу і оголошено змінну циклу 'a'. Тепер значення матиме від 1 до 3
- Рядок коду 7: Скидання значення "b" до "1" кожного разу.
- Рядок коду 8: Внутрішній цикл while перевіряє стан a> = b.
- Кодовий рядок 10: Друкує значення 'a' до тих пір, поки виконується наведена вище умова.
- Код, рядок 14: Друк виписки "Програма виконана"
Резюме
Петля | ДЛЯ Петлі |
Критерії виходу | Вихід, коли лічильник досягає межі |
Використання | Добре використовувати, коли відомий підрахунок циклів. |