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

Съдържание:

Anonim

Какво е For Loop?

Изразът "FOR LOOP" е най-подходящ, когато искате да изпълните код за известен брой пъти, а не въз основа на някои други условия.

В този цикъл ще бъдат посочени долната и горната граница и докато променливата на цикъла е между този диапазон, цикълът ще бъде изпълнен.

Променливата на цикъла се самоинкрементира, така че не е необходима изрична операция на инкремент в този цикъл. Променливата на цикъла не трябва да бъде декларирана, тъй като е декларирана имплицитно.

FOR  in LOOPEND 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 -outerLOOP - innerEND 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
Критерии за изход Излезте, когато броячът достигне границата
Употреба Добре е да се използва, когато е известен броят на циклите, който трябва да бъде изпълнен.