Орацле ПЛ / СКЛ ЛООП са примером

Преглед садржаја:

Anonim

Шта су Лоопс?

Лоопс омогућава одређени део кода у програму да се изврши жељени број пута.

У овом упутству ћемо видети концепт петље у ПЛ / СКЛ-у и ток контроле у ​​петљама. Научићеш-

  • Увод у концепт Лоопс
  • Изјаве о контроли петље
  • Типови петље у ПЛ / СКЛ-у
  • Изјава о основној петљи
  • Означавање петљи

Увод у концепт Лоопс

Лоопс концепт пружа следећу предност у кодирању.

  • Поновна употребљивост кода
  • Смањена величина кода
  • Лак проток контроле
  • Смањена сложеност

Доњи дијаграм приказује концепт петље на сликовит начин

У горњем дијаграму, провериће се услов петље и све док је услов петље задовољен, извршни блок ће се извршавати.

У свакој итерацији променљива бројача петље која заправо одлучује о стању петље треба да се модификује како би направила контролни излаз из петље. У неким случајевима, ова променљива бројача петље је оператер прираштаја / смањења за унапред дефинисано бројање, ау неким случајевима је то услов претраживања који наставља извршавање блока док га не задовољи.

Изјаве о контроли петље

Пре учења концепта петљи, обавезно је научити изјаве о контроли петље. Изјаве о контроли петље су оне које заправо контролишу ток извршења унутар петље. Испод је детаљан опис наредби за контролу петље.

НАСТАВИ

Ова кључна реч шаље упутство ПЛ / СКЛ механизму да ће сваки пут када ПЛ / СКЛ мотор наиђе на ову кључну реч унутар петље прескочити преостали код у извршном блоку кода и следећа итерација ће започети одмах. Ово ће се углавном користити ако код унутар петље жели да се прескочи за одређене вредности итерације.

ИЗЛАЗ / ИЗЛАЗ КАД

Ова кључна реч шаље упутство ПЛ / СКЛ механизму да ће сваки пут када ПЛ / СКЛ мотор наиђе на ову кључну реч, она одмах изаћи из тренутне петље. Ако ПЛ / СКЛ механизам наиђе на ЕКСИТ у угнежђеној петљи, тада ће изаћи из петље у којој је дефинисан, тј. У угнежђене петље, давање ЕКСИТ-а у унутрашњој петљи само ће изаћи из контроле из унутрашње петље, али не из спољне петље. 'ЕКСИТ ВХЕН' прати израз који даје логички резултат. Ако је резултат ИСТИНИТ, тада ће контрола ИЗЛАЗИТИ.

ИДИ НА

Ова наредба ће пренијети контролу у означену наредбу ("ГОТО <лабел>;"). Ово има следећа ограничења

  • Пренос контроле може се извршити само у оквиру потпрограма.
  • Пренос контроле се не може извршити из дела за руковање изузецима у извршни део

Употреба ове изјаве се не препоручује, осим ако не постоје друге алтернативе, јер ће следљивост управљања кодом бити веома тешка у програму због преноса контроле из једног дела у други део.

Типови петље у ПЛ / СКЛ-у

ПЛ / СКЛ пружа следеће три врсте петљи

  • Изјава основне петље
  • За изјаву петље
  • Изјава лооп

Изјава о основној петљи

Ова изјава петље је најједноставнија структура петље у ПЛ / СКЛ-у. Извршни блок започиње кључном речи „ЛООП“ и завршава се кључном речи „ЕНД ЛООП“.

Излазни услов треба дати унутар овог извршног блока тако да контролише излаз из петље.

За излазак из петље потребно је да се ЕКСИТ експлицитно наведе у извршном делу.

LOOPEND LOOP;
Објашњење синтаксе:
  • У горњој синтакси, кључна реч „ЛООП“ означава почетак петље, а „ЕНД ЛООП“ крај петље.
  • Извршни блок садржи сав код који треба извршити, укључујући и ЕКСИТ услов.
  • Извршни део може садржати било коју изјаву о извршењу.

Напомена: Изјава основне петље без кључне речи ЕКСИТ биће ИНФИНИТЕ-ЛООП која се никада неће зауставити.

Пример 1 : У овом примеру ћемо исписати број од 1 до 5 користећи основну изјаву петље. За то ћемо извршити следећи код.

DECLAREa NUMBER:=1;BEGINdbms_output.put_line('Program started.');LOOPdbms_output.put_line(a);a:=a+1;EXIT WHEN a>5;END LOOP;dbms_output.put_line('Program completed');END:/

Објашњење кода:

  • Линија кода 2 : Проглашавање променљиве „а“ типом „БРОЈ“ и иницијализација вредности „1“.
  • Линија кода 4 : Штампање изјаве „Програм је покренут“.
  • 5. ред кода: Кључна реч 'ЛООП' означава почетак петље.
  • Кодни ред 6: Штампа вредност „а“.
  • Редак кода 7: Повећава вредност „а“ за +1.
  • Кодни ред 8: Проверава да ли је вредност „а“ већа од 5.
  • Редак кода 9: Кључна реч 'ЕНД ЛООП' означава крај извршног блока.
  • Код од реда 6 до реда 8 наставиће се извршавати све док 'а' не достигне вредност 6, јер ће услов вратити ТРУЕ, а контрола ће ЕКСИТ из петље.
  • Кодни ред 10: Штампање изјаве „Програм завршен“

Означавање петљи

У ПЛ / СКЛ, петље могу бити означене. Ознака треба бити затворена између "<<" и ">>". Означавање петљи, посебно у угнежђеним кодовима петље, даће већу читљивост. Ознака се може дати у наредби ЕКСИТ за излазак из те одређене петље. Користећи ознаку, може се извршити контрола да директно изађе из спољне петље угнежђених петљи са било ког места унутар петљи, давањем наредбе за излаз иза које следи ознака спољне петље.

<>LOOP  . <> LOOP --inner  END LOOP; . END LOOP;
Објашњење синтаксе:
  • У горњој синтакси, петља оут има унутар себе још једну петљу.
  • Ознаке '<<ОУТЕР_ЛООП>>' и '<<ИННЕР_ЛООП>>' су ознаке ових петљи.

Пример 1 : У овом примеру ћемо исписати број почев од 1 помоћу наредбе Басиц лооп. Сваки број ће бити одштампан онолико пута колико му је вредност. Горња граница серије је фиксирана на делу декларације програма. Научимо како можемо да користимо концепт етикете да бисмо то постигли. За то ћемо извршити следећи код

DECLAREa NUMBER:=0;b NUMBER;upper-limit NUMBER :=4;BEGINdbms_output.put_line(‘Program started.' );«outerloop»‭ ‬LOOPa:=a+1;b:=l;«inner loop»LOOPEXIT outer_loop WHEN a > upper_limit;dbms_output.put_line(a);b:=b+l;EXIT inner_loop WHEN b>a;END LOOP;END LOOP;dbms_output.put_line('Program completed.');END;/

Објашњење кода:

  • Линија кода 2-3 : Проглашавање променљивих „а“ и „б“ као типа података „БРОЈ“.
  • Линија кода 4 : Декларисање променљиве „уппер_лимит“ као типа података „НУМБЕР“ са вредношћу „4“
  • 6. ред кода : Штампање изјаве „Програм је покренут“.
  • Кодни ред 7: Спољна петља је означена као "ектернал_лооп"
  • Редак кода 9: Вредност „а“ се увећава за 1.
  • Линија кода 11: Унутрашња петља је означена као "иннер_лооп".
  • Редак кода 13: ЕКСИТ услов који проверава да ли је вредност „а“ већа од вредности „уппер_лимит“. Ако не, онда ће ићи даље, иначе излази директно из спољне петље.
  • Редак 14: Штампање вредности 'б'.
  • Редак кода 15: Повећава вредност „б“ за +1.
  • Редак кода 16: ЕКСИТ услов који проверава да ли је вредност „б“ већа од „а“. Ако је тако, тада ће изаћи из контроле из унутрашње петље.
  • Редак 14: Штампање изјаве „Програм завршен“

Резиме

Лооп Басиц Лооп
Критеријуми за ИЗЛАЗ Излаз када наиђе на кључну реч 'ЕКСИТ' у извршном делу
Употреба Добро је користити када излаз није заснован на неком посебном услову.