Oracle PL / SQL, LABOJOT ar piemēru

Satura rādītājs:

Anonim

Kas ir kamēr cilpa?

WHILE cilpas priekšraksts darbojas līdzīgi kā pamata cilpas paziņojums, izņemot to, ka nosacījums EXIT ir cilpas pašā sākumā .

Tas darbojas kā ievades pārbaudes cilpa, kurā izpildes bloks pat netiks izpildīts vienu reizi, ja nosacījums nav izpildīts, jo izejas nosacījums tiek pārbaudīts pirms izpildes daļas. Tam nav nepieciešams, lai atslēgvārds “EXIT” skaidri izietu no cilpas, jo tas nosacījumu apstiprina netieši katrā cilpas reizē.

WHILE LOOPEND LOOP;
Sintakses skaidrojums:
  • Iepriekš minētajā sintaksē atslēgvārds “WHILE” atzīmē cikla sākumu, bet “END LOOP” - cikla beigas.
  • EXIT nosacījums tiek novērtēts katru reizi, pirms izpildes daļa sāk izpildīt.
  • Izpildes bloks satur visu kodu, kas jāizpilda.
  • Izpildes daļā var būt jebkurš izpildes paziņojums.

1. piemērs : Šajā piemērā mēs izdrukāsim numuru no 1 līdz 4, izmantojot WHILE cilpas paziņojumu. Šim nolūkam mēs izpildīsim šādu kodu.

DECLAREa NUMBER :=1;BEGINdbms_output.put_line('Program started');WHILE (a <= 5)LOOPdbms_output.put_line(a);a:=a+1;END LOOP;dbms_output.put_line(‘Program completed' ); END:/

Koda skaidrojums:

  • 2. koda rindiņa : mainīgā “a” deklarēšana par “NUMBER” datu tipu un inicializēšana ar vērtību “1”.
  • 4. koda rindiņa : izdrukājiet paziņojumu "Programma sākta".
  • 5. koda rindiņa: Atslēgvārds “WHILE” atzīmē cikla sākumu, un tas arī pārbauda, ​​vai “a” vērtība ir mazāka vai vienāda ar 5
  • 7. koda rindiņa: izdrukā “a” vērtību.
  • 8. koda rindiņa: palielina “a” vērtību ar +1.
  • 9. koda rindiņa: Atslēgvārds “END LOOP” atzīmē izpildes bloka beigas.
  • Kods no 7. un 8. rindas turpinās darboties, līdz “a” sasniegs vērtību 6, jo nosacījums atgriezīs TRUE, un vadība izies no cilpas.
  • 10. koda rindiņa: Izraksta "Programma pabeigta" izdrukāšana

Kopsavilkums

Loop KAD CILPE
Izejas kritēriji Iziet, kad pārbaudes nosacījums atgriež kļūdainu vērtību
Lietošana Labi lietojams, ja cilpu skaits nav zināms, un izeja ir balstīta uz kādu citu nosacījumu.