Какво е For Loop?
Изразът "FOR LOOP" е най-подходящ, когато искате да изпълните код за известен брой пъти, а не въз основа на някои други условия.
В този цикъл ще бъдат посочени долната и горната граница и докато променливата на цикъла е между този диапазон, цикълът ще бъде изпълнен.
Променливата на цикъла се самоинкрементира, така че не е необходима изрична операция на инкремент в този цикъл. Променливата на цикъла не трябва да бъде декларирана, тъй като е декларирана имплицитно.
FORОбяснение на синтаксиса:in … LOOP … END LOOP;
- В горния синтаксис ключовата дума „FOR“ маркира началото на цикъла, а „END LOOP“ отбелязва края на цикъла.
- Променливата Loop се оценява всеки път, преди да се изпълни изпълняващата част.
- Изпълнителният блок съдържа целия код, който трябва да бъде изпълнен. Изпълнителната част може да съдържа всеки оператор за изпълнение.
- Loop_variable се декларира имплицитно по време на изпълнението на целия цикъл и обхватът на този loop_variable ще бъде само вътре в този цикъл.
- Ако променливата на цикъла излезе от обхвата, тогава контролата ще излезе от цикъла.
- Цикълът може да се накара да работи в обратен ред, като се добави ключовата дума 'REVERSE' преди lower_limit.
Пример 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: Ключова дума „ЗА“ маркира началото на цикъла и се декларира цикъл_променлива „а“. Сега ще има стойността, започваща от 1 до 5
- Кодов ред 5: Отпечатва стойността на „а“.
- Кодов ред 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“ като тип данни „НОМЕР“.
- Код ред 4 : Отпечатване на изявлението „Програмата е стартирана“.
- Кодов ред 5: Ключова дума „ЗА“ маркира началото на цикъла и се декларира цикъл_променлива „а“. Сега ще има стойността, започваща от 1 до 3
- Кодов ред 7: Нулиране на стойността на "b" на "1" всеки път.
- Кодов ред 8: Вътрешният цикъл while проверява за условие a> = b.
- Кодов ред 10: Отпечатва стойността на „а“, стига да е изпълнено горното условие.
- Код ред 14: Отпечатване на изявлението „Програмата е завършена“
Обобщение
Примка | ЗА Loop |
Критерии за изход | Излезте, когато броячът достигне границата |
Употреба | Добре е да се използва, когато е известен броят на циклите, който трябва да бъде изпълнен. |