Докато Loop in Oracle PL/SQL с пример

⚡ Умно обобщение

Oracle PL/SQL WHILE цикълът повтаря блок от код, докато дадено условие остава истина. Това е цикъл за проверка на входни данни, който тества условието за изход преди всяка итерация, така че блокът може да се изпълни нула пъти и не е необходима изрична ключова дума EXIT.

  • 🔁 Основание: Цикълът WHILE се изпълнява, докато условието е истина и спира веднага щом то стане неистина.
  • 🚦 Проверка за влизане: Условието се тества преди блока, така че цикълът може да се изпълни нула пъти.
  • 🧮 Не е необходим ИЗХОД: Условието се валидира имплицитно при всяка итерация, така че не се изисква изричен EXIT.
  • 🔢 брояч: Променлива вътре в блока трябва да се промени, така че условието евентуално да стане невярно.
  • ♾️ Безкраен риск: Ако броячът никога не откаже условието, цикълът се изпълнява безкрайно.
  • срещу ЗА: Използвайте WHILE, когато броят на итерациите е неизвестен, и FOR, когато е фиксиран.
  • 🚪 Ранно излизане: EXIT WHEN все още може да напусне цикъл WHILE, преди условието да стане невярно.

Oracle PL/SQL цикъл докато

Какво е PL/SQL While цикъл?

- Докато Loop В PL/SQL работи подобно на основния цикъл, с изключение на това, че условието за изход е в самото начало на цикъла. Работи като цикъл за проверка на влизания, където блокът за изпълнение се изпълнява само ако условието е изпълнено, защото условието за изход се проверява преди изпълнението.

Не изисква изрично ключовата дума „EXIT“ за излизане от цикъла, тъй като валидира условието имплицитно всеки път.

Синтаксис на цикъла на PL/SQL

WHILE <EXIT condition>
LOOP
<execution block starts>
.
.
.
<execution_block_ends>
END LOOP;
  • Ключовата дума „WHILE“ маркира началото на цикъла, а „END LOOP“ – края му.
  • Условието за изход се оценява всеки път, преди изпълнението на частта за изпълнение да започне.
  • Блокът за изпълнение съдържа целия код, който трябва да се изпълни.
  • Изпълнителната част може да съдържа произволен изпълним оператор.

Пример за Oracle PL/SQL цикъл докато

В този пример отпечатваме числа от 1 до 5, използвайки цикъл WHILE.

Пример за цикъл на PL/SQL
Пример за цикъл на PL/SQL
DECLARE
a NUMBER := 1;
BEGIN
dbms_output.put_line('Program started');
WHILE (a <= 5)
LOOP
dbms_output.put_line(a);
a:= a+1;
END LOOP;
dbms_output.put_line('Program completed');
END;
/

Code Обяснение:

  • Code ред 2: Деклариране на променливата 'a' като 'NUMBER' и инициализирането ѝ със стойност '1'.
  • Code ред 4: Отпечатване на изявлението „Програмата е стартирана“.
  • Code ред 5: Ключовата дума „WHILE“ маркира началото на цикъла и проверява дали стойността на „a“ е по-малка или равна на 5.
  • Code ред 7: Отпечатва стойността на 'a'.
  • Code ред 8: Увеличава стойността на „a“ с 1.
  • Code ред 9: Ключовата дума „END LOOP“ маркира края на блока за изпълнение.
  • Редове 7 и 8 продължават да се изпълняват, докато 'a' достигне стойност 6, при което условието връща FALSE и управлението излиза от контур.
  • Code ред 10: Отпечатване на изявлението „Програмата е завършена“.

Цикъл WHILE срещу цикъл FOR срещу основен цикъл

PL/SQL предлага три типа цикли и изборът на правилния поддържа кода ясен. Цикълът WHILE е подходящ за повторение, управлявано от условие, докато другите два са подходящи за фиксиран брой или изрично контролиран изход.

Контур Критерии за изход Най-добре се използва, когато
цикъл WHILE Условието на върха става невярно Броят на итерациите е неизвестен
FOR цикъл Броячът достига края на диапазона Броят на итерациите е известен
Основен цикъл Изричен EXIT в блока Изходът се управлява ръчно

Тъй като цикълът WHILE проверява условието си в началото, тялото може да се изпълни нула пъти, ако условието е невярно от самото начало. Това е ключовата разлика от обикновен цикъл, чието тяло винаги се изпълнява поне веднъж.

Избягване на безкраен While цикъл

Цикъл WHILE зависи изцяло от движението на управляващата променлива към условието за изход. Ако това никога не се случи, цикълът се изпълнява безкрайно и сесията замръзва. Три навика предотвратяват това:

  • Променяйте брояча на всяка итерация. Примерът увеличава 'a' вътре в цикъла; премахването на този ред би довело до безкраен цикъл.
  • Тествайте границата. Потвърдете, че условието може действително да стане невярно за началната стойност, не само за идеален случай.
  • Добавете безопасен ИЗХОД КОГАТО. За цикъл, управляван от данни, EXIT WHEN при максимален брой итерации действа като защита срещу неочаквана стойност.

Когато броят на повторенията е наистина фиксиран, FOR цикълът елиминира риска изцяло, защото броячът му се управлява автоматично.

Въпроси и Отговори

Да. Тъй като условието се проверява преди блока, ако е невярно в началото, тялото никога не се изпълнява. Тази проверка на входа е основната разлика от обикновен цикъл, който винаги се изпълнява веднъж.

Уверете се, че променлива вътре в цикъла се променя към условието за изход при всяка итерация. Добавянето на EXIT WHEN при максимален брой е полезна предпазна мрежа за цикли, управлявани от данни.

Използвайте WHILE, когато броят на итерациите не е известен и зависи от условие. Използвайте FOR, когато извършвате цикъл през фиксиран диапазон, тъй като броячът му се управлява автоматично.

Често. Изкуственият интелект може да провери дали управляващата променлива се движи към условието за изход и да предупреди, когато това не се случи. Цикъл, чийто изход зависи от данни в реално време, все още се нуждае от тест, за да бъде сигурен.

Да. Въпреки че цикъл WHILE се извежда, когато горното му условие стане невярно, EXIT или EXIT WHEN вътре в тялото може да го напусне преждевременно, което е удобно за прекъсване в специален случай.

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